【发布时间】:2015-03-23 17:08:41
【问题描述】:
我是 excel 中的宏的新手,我正在尝试创建一个可以帮助我根据匹配将数据从一张表复制到另一张表的宏。基本上我希望excel查看Sheet1中的H列,如果任何单元格中的数据将与Sheet2中E列中任何单元格的数据匹配,它将从Sheet1到Sheet2的列范围复制到相关行(找到匹配的地方) .
例如: 如果 H5 (sheet1) 中的数据与 E1 (sheet2) 中的数据匹配,则应将单元格 I5 到 J5 (sheet1) 复制到单元格 F1 到 G1。
目前我有这个宏正在做部分工作:
Sub asd()
For Counter = 1 To 10
If Sheets(1).Range("H" & Counter).Value = Sheets(2).Range("E" & Counter).Value Then
Sheets(2).Range("F" & (Counter)).Value = Sheets(1).Range("I" & Counter).Value
Sheets(2).Range("G" & (Counter)).Value = Sheets(1).Range("J" & Counter).Value
End If
Next Counter
End Sub
它的问题在于,一旦 H 列(sheet1)与 E 列(Sheet2)之间不匹配,宏就会停止。如果在所有行都完成之前没有匹配,我相信有一种简单的方法可以让它跳转到下一行。
任何人都可以编辑此代码以使其工作吗?
【问题讨论】:
-
你确定它在没有匹配时停止,还是在 10 行后停止,因为这是你在
For Counter = 1 To 10中指定的?尝试使用调试器一次单步执行您的代码(按 F8 执行每一行代码),看看发生了什么。
标签: excel copy match cells vba