找到值后,VBA将升起一个标志
我正在尝试使用.Find方法在找到值后升起一个标志。问题在于。查找。它不起作用了。这应该是真的,但事实并非如此。这些值存在于Repasse.RangeA2:LastFindRange中,但它无法识别它们。有什么想法吗找到值后,VBA将升起一个标志,vba,excel,find,Vba,Excel,Find,我正在尝试使用.Find方法在找到值后升起一个标志。问题在于。查找。它不起作用了。这应该是真的,但事实并非如此。这些值存在于Repasse.RangeA2:LastFindRange中,但它无法识别它们。有什么想法吗 Dim Book As Workbook Dim Calypso As Worksheet Dim Repasse As Worksheet Dim LastFindRange as Long Dim LastCalypso as Long Dim Flag as Boolean
Dim Book As Workbook
Dim Calypso As Worksheet
Dim Repasse As Worksheet
Dim LastFindRange as Long
Dim LastCalypso as Long
Dim Flag as Boolean
Set Book = Workbooks("Novo Email - Caixa Offshore")
Set Calypso = Workbooks("Novo Email - Caixa Offshore").Worksheets("Calypso")
Set Repasse = Book.Worksheets("Exceções Repasse")
LastFindRange = Repasse.Cells(Rows.Count, "A").End(xlUp).Row
LastCalypso = Calypso.Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To LastCalypso
Flag = True
On Error Resume Next
Set FindSting = Repasse.Range("A2:A" & LastFindRange).Find(Calypso.Range("D" & i).Value)
If FindString Is Nothing Then
Flag = False
Else: Flag = True
End If
我是个白痴
我使用FindString作为范围,并使用FindString-没有r
所以这完全是一个输入错误。最后的FindRange是什么?请删除错误恢复,然后检查是否出现错误。此外,请为其他变量提供值,以便我们查看是否存在错误。请参见上面的编辑。我包含了定义了变量的部分代码。接下来,我将尝试在没有错误的情况下继续,看看会发生什么。我的印象是VBA中的代码被认为是宏。我的缺点是,更奇怪的是,当我将光标放在FindString上时,当它不工作时,它并没有说什么。它返回我要查找的值。但在调试过程中,一旦我进入if,它就会将标志设置为false。请将此标记为问题的答案,因为它可以关闭。顺便说一句,打字白痴;下面是一个巨大的技巧,它将为您节省许多调试时间…在VBE中,工具->选项->编辑器选项卡->需要变量声明。这将在每个新模块的顶部插入显式代码选项。Option Explicit是VBA程序员最好的朋友。通过强制你声明你的变量,它会处理像这样的打字错误。第一次运行例程时,它会给您一个编译错误,变量未定义,并突出显示FindSting。我还建议手动将OptionExplicit添加到所有现有模块的顶部。