시트 이름에 "benefits"텍스트가있는 워크 시트가 포함될 통합 문서가 있습니다. 예를 들어; 의료 혜택 또는 치과 혜택. 적어도 하나는있을 것이지만 몇 가지가있을 수 있습니다. 나는 텍스트 시트 이름에 "혜택"AND 연속 TRUE 단어의 적어도 하나 개의 인스턴스 워크 시트 (들)을 발견 할 것이다 매크로를 작성하는 것을 시도하고있다새 워크 시트 만들기
(40)
이 두 가지 기준 그때 나는 같은 워크 시트 이름을 사용하지만 텍스트 "혜택"텍스트를 "최종"텍스트로 대체하여 새로운 워크 시트를 만들어야합니다. 40 행의 하나 이상의 셀에서 MEDICALBenefits 워크 시트가 TRUE이면 MEDICALFinal이라는 새 시트가 작성됩니다.
마찬가지로, DENTALBenefits 워크 시트가 40 행의 하나 이상의 셀에서 TRUE이면 DENTALFinal이라는 새 시트가 작성됩니다.
그런 다음 이름이 "Benefits"이고 40 행이 TRUE 인 모든 시트를 반복하고 새 시트를 작성해야합니다.
이것은 지금까지 가지고있는 코드이지만 새 시트의 이름을 지정하는 데 도움이 필요합니다.
요르단
'Look for worksheet names *benefits* with checkbox(s) = true
Sub CreateFinalWorksheet()
Dim sh As Worksheet
Dim iVal As Integer
Application.ScreenUpdating = False
For Each sh In ActiveWorkbook.Sheets
iVal = Application.WorksheetFunction.CountIf(Range("40:40"), "TRUE")
If (LCase$(sh.Name) Like "*benefits*") And (iVal > 0) Then Call AddWorksheet
Next sh
Application.ScreenUpdating = True
End Sub
'Called from CreateFinalWorksheet.
'Add worksheet with same sheet name replacing *benefits* with *final*
Sub AddWorksheet()
Dim sh As Worksheet
With ThisWorkbook
Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
ws.Name = "MedicalFinal"
End With
End Sub
두 제안을 모두 시도했지만 두 시트 모두 MEDICALFinal을 새로 작성하지만 다음 시트를 반복하지 않습니다. DENTALBenefits 다음 새 시트 작성 치명상. 나는 하위를 호출 한 후 첫 번째 매크로로 돌아가 나머지 시트를 반복 할 것이라고 생각했습니다. 나는 VBA에 매우 익숙하며 필요한 수정을하는 방법을 모르고있다. – JordanCA57
@ JordanCA57, 편집 된 답변 참조. 귀하의 질문을 해결하는 경우 답변 옆에있는 체크 표시를 클릭하여 회색으로 표시하고 채워 넣으십시오. 감사합니다. – user3598756
그만큼의 점수를 변경해야합니다. 나는 그것을 이해한다. 나머지는 내가 가서 알아낼 것입니다. 이것은 학습에 정말로 도움이됩니다. – JordanCA57