私は、セルの参照範囲内の各値の存在をセル範囲でチェックする非常に簡単なExcelマクロを持っています。参照範囲の値が見つからない場合は、値が見つからなかったというメッセージが表示されます。ユーザは、チェックを次の項目に続行するために大丈夫をクリックしなければならない。マクロを修正してすべての値をチェックし、すべてのチェックが完了した後に見つからないリストを返すだけです。提案?Excelマクロ - 条件を満たす項目のリストを返します
現在のコード:
Sub ChkAfternoonAssignmentsV2()
Dim dayToChk As Variant
Dim i As Variant
Dim r As Range
Dim p As Variant
ReEnter:
dayToChk = InputBox("Which day (use 3-letter abbreviation) would you like to check afternoon assignments?")
If dayToChk = "Mon" Then
Set r = ActiveSheet.Range("MonAft_MA_Slots")
ElseIf dayToChk = "Tue" Then
Set r = ActiveSheet.Range("TueAft_MA_Slots")
ElseIf dayToChk = "Wed" Then
Set r = ActiveSheet.Range("WedAft_MA_Slots")
ElseIf dayToChk = "Thu" Then
Set r = ActiveSheet.Range("ThuAft_MA_Slots")
ElseIf dayToChk = "Fri" Then
Set r = ActiveSheet.Range("FriAft_MA_Slots")
Else
MsgBox dayToChk & " is not in the expected format. Try Mon, Tue, Wed, Thu, or Fri."
GoTo ReEnter
End If
Dim AckTime As Integer, InfoBox As Object
Set InfoBox = CreateObject("WScript.Shell")
AckTime = 1
Select Case InfoBox.Popup("Checking MA Assignments", _
AckTime, "Checking MA Assignments", 0)
Case 1, -1
End Select
For Each i In Sheets("Control").Range("MA_List")
If WorksheetFunction.CountIf(r, i) < 1 Then
If i <> "OOO" Then
MsgBox i & " is not assigned"
End If
ElseIf WorksheetFunction.CountIf(r, i) > 1 Then
If i <> "OOO" Then
MsgBox i & " is assigned more than once. Did you really mean to do that?"
End If
End If
Next i
を試みることができるだけのメッセージボックスまたはシートの上に、どのように返されますか? – SJR
メッセージボックスではなく、シート上にあります。 –