注:この質問は前の投稿hereで機能します。Excel VBA:タスクを実行する前に別のブックのセルに文字列が含まれているかどうか確認してください。
ここに私の問題の背景があります。私はフォルダ内に同じフォーマットの複数のテストファイルを持っています。私は、各作業本の列に「YES」という特定の金額を数える必要があります。私の以前の質問から、各ファイルを横切って "YES"を数え、カウンターをマスターワークブックに入れるマクロを得ることができました。次のマクロを示し、このコード:
Private Sub CommandButton1_Click()
Dim r As Range
With Worksheets("Sheet1")
For Each r In .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
r.Offset(0, 1).Value = getYesCount(r.Value)
Next
End With
End Sub
Function getYesCount(WorkBookName As String) As Long
Const FolderPath As String = "C:\Users\khanr1\Desktop\CodeUpdateTest\"
If Len(Dir(FolderPath & WorkBookName)) Then
With Workbooks.Open(FolderPath & WorkBookName)
With .Worksheets("Sheet2")
getYesCount = Application.CountIf(.Range("D:D"), "YES")
End With
.Close False
End With
Else
Debug.Print FolderPath & WorkBookName; ": Not Found"
End If
End Function
今私が持っている問題は、それに隣接する「警告」の文字列がある場合のみ、「YES」を数える機能を追加することです。テストファイルの1の次のスナップショットを参照してください:私の考えはした
:ここ
は、マスターワークブック(CountResults.xlsm)のスナップショットですセルに「警告」が含まれているかどうかを確認する「If」関数を作成し、そうであればYES列をカウントします。また、列に複数の文字列が含まれる可能性があるため、列に文字列があるかどうかを確認できるマクロを作成することはできません。 「警告」または「警告*」(それに続く詳細がある場合)を指定する必要があります。
ブリリアント! :)うまく動作します – Ridwan