而不是查找大於6的數字並將其發送到另一個工作表。我想查找3個名字,這樣我就可以搜索聯繫人列表,並讓他們將信息從表單中提取到報表。下面三個名稱的搜索工作表
是我的舊代碼:
Private Sub CommandButton1_Click()
Dim ws As Worksheet, myCounter
Dim erow, myValue As Long
For Each ws In Sheets
If ws.Range("C3").Value > 6 Then
myCounter = 1
ws.Select
ws.Range("c3").Select
myValue = ws.Range("C3").Value
Worksheets("Report").Select
erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(erow, 1) = myValue
nextValue = MsgBox("Value found in " & ws.Name & Chr(10) & "Continue?", vbInformation + vbYesvbNo, ws.Name & " C3 = " & ws.Range("C3").Value)
Select Case nextValue
Case Is = vbYes
Case Is = vbNo
Exit Sub
End Select
End If
Next ws
If myCounter = 0 Then
MsgBox "None of the sheets contains a " & Chr(10) & "value greater than 6 in cell C3 ", vbInformation, "Not Found"
End If
End Sub
我覺得第三行應該是String
而不是Long
。
我在找的名字是「大衛」「安德烈」&「卡羅琳」,不知道我是否寫了三次或使用循環。此外,我無法弄清楚如何在整個電子表格中搜索這些名稱。
打開宏記錄器並使用查找對話框查找名稱。停止錄製並檢查您的代碼。將您想要在3個單元格中找到的名稱放在單獨的工作表上,併爲名爲「NamesToFind」的3個單元格創建一個命名範圍。使用工作表(「您的工作表名稱」),UsedRange爲範圍內的每個名稱(NamesToFind)循環設置使用Range.Find方法來查找名稱。當代碼不起作用時,請回復我們的代碼。注意:你所擁有的代碼不是一個好的起點。 –
@VBABeginner在下面閱讀我的答案和代碼,讓我知道它是否按照你的意圖工作 –