比较两个单元格值,但其中一个出现在引号

时间:2017-03-15 09:19:00

标签: excel vba loops match quotation-marks

我正在研究宏的工作。我有3张床单:

  • 来源:将所有数据排列成列
  • 报告:来自csv,我必须在一列中剖析值 成为价值观。一个是ID,另一个是参考号。我用 这个公式。
  • 结果:这是宏将所有数据复制到的地方。

所以我使用工作表“报告”中的参考在工作表“源”中搜索它然后偏移以找到相应的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

0 个答案:

没有答案