2017-06-05 101 views
-4

我正在尋找一些幫助創建一個Excel宏,將在同一行的空白和列B爲空白的單元格A列然後在打開工作簿時顯示一個彈出消息框,顯示列A中包含名稱的行的信息,但沒有列B中的任何信息以提醒用戶完成工作表中的項目。Excel VBA宏來搜索一列,並在列值彈出消息顯示行

這可能嗎?如果有人可以請幫助代碼來完成這項工作。

很多謝謝

+3

是的,這是可能的。 – dwirony

+0

你能幫助我需要使用的VBA代碼嗎? – samdeighan

+2

是的 - 你到目前爲止嘗試過什麼? – dwirony

回答

0

根據你告訴我,這是我所能提供的。運行它會發現列A不是空白和列B缺少文本的第一次出現。然後您可以讓用戶填寫,再次運行以檢查更多內容。

Sub checkcolumns() 
Dim i As Long 

'100 is the last row you want to check. Change accordingly 

For i = 1 To 100  
    'Change Sheet1 to your worksheet name 
    If ActiveWorkbook.Worksheets("Sheet1").Range("A" & i).Value <> "" And ActiveWorkbook.Worksheets("Sheet1").Range("B" & i).Value = "" Then 
     MsgBox "Row " & i & " is missing a value in column B!", vbExclamation, "Missing value!" 
     Exit Sub 
    End If 
Next i 

MsgBox "Search complete, all values are in place!", vbInformation, "Success!" 
End Sub 

要在一個消息顯示所有:

Sub checkcolumns() 
Dim i As Long 
Dim message As String 

For i = 1 To 100 
    If ActiveWorkbook.Worksheets("Sheet1").Range("A" & i).Value <> "" And ActiveWorkbook.Worksheets("Sheet1").Range("B" & i).Value = "" Then 
     message = message + "Row " & i & " is missing a value in Column B! " 
    End If 
Next i 

MsgBox message, vbInformation, "Success!" 
End Sub 
+0

非常感謝你! 反正有沒有在彈出框中顯示所有缺少信息的行? 目前它彈出消息: 行2在列B中缺少一個值! 然後停止,即使有其他人在其下面缺少信息。 有沒有辦法讓它彈出一個框中的所有信息: 第2列在B列中缺少一個值! 行5在列B中缺少一個值! 行6在列B中缺少一個值! 行8在列B中缺少一個值! 行10在列B中缺少一個值! – samdeighan

+0

那你有多少行?有了這個第一個版本,你可以運行它,然後填寫空白,再次運行,它會發現下一個事件。問題是,消息框只能保存這麼多的文本。如果在列B缺少文本的情況下發現20次出現,則可能會過多地放入消息框。 – dwirony

+0

我已經用另一種解決方案編輯了我的答案,以在一個消息框中顯示所有值。 – dwirony