如何让Excel VBA宏操作多个电子表格上的数据?
我是否有办法在Excel宏(或外接程序)中获取逻辑,以从多个电子表格中提取和操作数据如何让Excel VBA宏操作多个电子表格上的数据?,vba,excel,Vba,Excel,我是否有办法在Excel宏(或外接程序)中获取逻辑,以从多个电子表格中提取和操作数据 大致如下:对于电子表格A中的每一行(如果电子表格A中的站点URL=电子表格B中的站点URL,则将值“电子表格B列X”复制到电子表格A列Y中)。确实存在。这是通过使用sheets()命令在工作表之间切换来完成的。您可以使用索引(它们从1开始),或者如果您已经命名了工作表,您可以将名称作为字符串键入工作表(“报告”)。激活 此代码将为您进行比较。我们假设工作表A是工作表(1)和工作表B是工作表(2),我们只比较两张
大致如下:对于电子表格A中的每一行(如果电子表格A中的站点URL=电子表格B中的站点URL,则将值“电子表格B列X”复制到电子表格A列Y中)。确实存在。这是通过使用
sheets()
命令在工作表之间切换来完成的。您可以使用索引(它们从1开始),或者如果您已经命名了工作表,您可以将名称作为字符串键入工作表(“报告”)。激活
此代码将为您进行比较。我们假设工作表A
是工作表(1)
和工作表B
是工作表(2)
,我们只比较两张工作表中的A列
Sub test()
col_2_search = "A"
LastRowA = Sheets(1).Cells(Sheets(1).Rows.Count, col_2_search ).End(xlUp).Row
For curr_row = 1 To LastRowA
val_from_a = Sheets(1).Cells(curr_row, col_2_search ).Value
val_from_b = Sheets(2).Cells(curr_row, col_2_search ).Value
If (val_from_a = val_from_b) Then
'this should be where you put your copy paste code
MsgBox ("match row " & curr_row & " value:" & val_from_a)
End If
Next
End Sub
编辑
使用match的替代解决方案。也许有一种更简洁的方式来写这篇文章,但我只是很快就放弃了
Sub test()
col_2_search = "A"
LastRowA = Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).Row
LastRowB = Sheets(2).Cells(Sheets(2).Rows.Count, "A").End(xlUp).Row
For curr_row = 1 To LastRowA
value_from_A = Sheets(1).Cells(curr_row, col_2_search ).Value
'we are searching B from column 1 to the last populated column in b
Var = Application.Match(value_from_A, Range(Sheets(2).Cells(1, col_2_search ), Sheets(2).Cells(LastRowB, col_2_search )))
'if there wasn't an error, var contains the row of range B that matches
'a
If Not (IsError(Var)) Then
MsgBox ("Row " & curr_row & " of A matches row " & Var & " of B, both contain: " & value_from_A)
End If
Next
End Sub
在vba
中肯定有这样做的方法。到目前为止,您尝试了哪些方法,哪些方法无效?Vlookup、索引与匹配、查找。。。。不需要愚蠢的vbaDid,你可以用谷歌搜索吗?@holdencaulfeld LookupVLOOKUP
。我可以给你很多关于这个的链接。请注意,这仅对行进行比较。而vlookup或index&match会将一个值与整个列进行比较。谢谢@chancea。我确实需要它将1个值与整列值进行比较。@andrew我是VBA新手如何修改代码以添加索引/匹配?@HoldEncaulfeld索引/匹配不是VBA,而是VBAformula@chancea又对了,,但是,即使它不是一个本机VBA函数,如果您使用应用程序正确调用它,您仍然可以使用它。工作表函数
(或者在本例中应用程序
似乎也起作用)使用工作表函数可能会有相当多的问题,最好是简单地将代码嵌入单元格中。在任何情况下,我都对我的答案进行了编辑