两列匹配VBAvariables
我一直坚持在我的macros的这一行代码现在一个星期,阅读和尝试了很多方法来解决这个问题。
我必须声明,我对VBA不是很好,所以请耐心等待,我会欣赏一些步骤的标记性解释。
我想要做的事情其实很简单,我在表格中有一个大约1000行的大型数据库,我希望尽可能有效地为相同行号的两列(重复)进行匹配,例如:
专栏1:詹姆斯,约翰,约翰,詹姆斯,杰布
专栏#2:史密斯,李,史密斯,威尔斯,黑色
我想find与“约翰”和“史密斯”行,简单的答案是第3行。
但增加的复杂性是匹配目标是一个variables,例如
dim name1 as string dim name2 as string dim r as long name1 = "John" name2 = "Smith" r = application.worksheetfunction.match(name1&name2,.range("A:A")&.range("B:B"),0)
这个函数必须在macros中迭代多次。
我试过例如使用for i = 1到1000,并通过if参数单独匹配两列,但据我所知我无法得到循环的行号,即r = result.row变成在循环之外清空。
非常感谢您阅读这个! 这个论坛对我现有的代码贡献了很多,我非常感谢迄今为止的帮助。
在数组中保持Match()返回的'r'的值。 稍后,使用该数组进一步操作。
我不得不在本周早些时候做类似的事情,虽然这个问题看起来令人望而生畏,但通过阅读这里和其他地方的post给出了一个相当简单但容易的解决scheme。
步骤1:在电子表格的C列中插入以下公式
=CONCATENATE(A1&B1)
复制并粘贴到A和B中的所有单元格。
第2步:您的VBA代码看起来不错。 但是,您需要某种方法将结果打印到某处。 您可以打印到消息框
=msgbox(r)
或表单
例如。 Range("XX) = r
这些应该有希望解决你的问题。