我对VBA很陌生,只有基本的知识水平。VBA运行时错误13使用Msgbox
我一直在尝试创建一个宏,以便在同一工作簿中的多张其他工作表上交叉引用一张工作表上的数据。如果找到记录,我希望msgbox出现以提醒用户数据的位置。
后几个小时搜索互联网和码位拼凑这是我
Sub search()
Dim ws As Worksheet, found As Range
Dim TextToFind(1 To 20) As String
Dim iText As Long
TextToFind(1) = "Jade Smith"
TextToFind(2) = "Bob Collins"
TextToFind(3) = "Jemima Smythe"
For Each ws In ThisWorkbook.Worksheets
With ws
If .Name <> "Blacklisted Candidates" Then 'Do not search blacklist candidates!
iText = 1
Do While iText <= UBound(TextToFind)
If TextToFind(iText) <> "" Then 'Do not search blank strings!
Set found = .UsedRange.Find(what:=TextToFind(iText), LookIn:=xlformulas, LookAt:=xlPart, MatchCase:=False)
If Not found Is Nothing Then
MsgBox "Proxy Candidate Found at " & found.Address
Else
MsgBox "No Proxy Candidates Found ", vbOKOnly, "Success!"
End If
iText = iText + 1
End If
Loop
End If
End With
Next ws
End Sub
此代码但不从其他表查找值。
当测试这个时,我只是得到msgbox时没有数据被发现,即使有测试数据那里。
我有一个约9张工作簿(不断增长),我想搜索每个工作簿的前9列的指定数据,你可以看到我已经手动输入到宏但运行宏即使有数据可以找到,我也不会返回任何结果。
为什么你最后有“*”? –
修改'* MsgBox(“代理候选人发现在和rngX.Address)''MsgBox”代理候选人在“&rngX.Address”找到 –
您是否遗漏了一些代码? @litelite有正确的答案。错误13,但你的'Do'循环没有任何办法*退出*。另外'如果Rng被发现然后'应该是'如果不是没有什么然后'。 – Comintern