我正在研究宏的工作。我有3张床单:
所以我使用工作表“报告”中的参考在工作表“源”中搜索它然后偏移以找到相应的ID。一个人不是一个明显的变量,但两个在一起。 我的宏工作,因为当我手动输入数字时,我得到了预期的结果。但是,当我使用公式创建的值运行Excel时,Excel无法匹配ID号。
更具体地说,我有一个循环,首先通过简单地使用offset来找到源表中的ID号(在此循环之前已经找到了引用号,并且它包含在变量“SearchResult”中)。如果找到了ID但与参考表中的ID不匹配,则会转到下一个SearchResult(下一个,但列参考中的参考号相同),并再次进行偏移以查找ID。 循环继续,直到源表中找到的ID与参考表中的ID匹配。
不幸的是,尽管匹配,它们永远不匹配;)
FindID显示如下值:1
ID显示如下值:“1”
我尝试更改单元格的格式,但没有任何改变。同样,参考表中的值是公式的结果。但是,引用和ID都是。当我使用find方法在源表中找到它时,引用不会出现在引号中。这只发生在身份证上。
这是ID单元格中使用的公式:
=if(left(M2;1)="0";right(M2;length(M2)-1);M2)
我解剖了原始号码并且必须考虑两位数的ID号,所以当它只是一位数时,前面有一个0,我必须摆脱
我对VBA相当新,现在已经花了好几个小时,我似乎无法弄明白。希望所有这些文字仍然有意义:)
Do
Set FindID = SearchResult.Offset(0, -7)
Set ID = Cell.Offset(0, 1)
If FindID Is Nothing Then
Set SearchResult = SearchRange.FindNext(SearchResult)
Set FindID = SearchResult.Offset(0, -7)
ElseIf FindID <> ID Then
Set SearchResult = Range("reference").FindNext(SearchResult)
Debug.Print SearchResult.Address
End If
Loop Until FindID = ID