如何让Excel VBA宏操作多个电子表格上的数据?

如何让Excel VBA宏操作多个电子表格上的数据?,vba,excel,Vba,Excel,我是否有办法在Excel宏(或外接程序)中获取逻辑,以从多个电子表格中提取和操作数据 大致如下:对于电子表格A中的每一行(如果电子表格A中的站点URL=电子表格B中的站点URL,则将值“电子表格B列X”复制到电子表格A列Y中)。确实存在。这是通过使用sheets()命令在工作表之间切换来完成的。您可以使用索引(它们从1开始),或者如果您已经命名了工作表,您可以将名称作为字符串键入工作表(“报告”)。激活 此代码将为您进行比较。我们假设工作表A是工作表(1)和工作表B是工作表(2),我们只比较两张

我是否有办法在Excel宏(或外接程序)中获取逻辑,以从多个电子表格中提取和操作数据


大致如下:对于电子表格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 Lookup
VLOOKUP
。我可以给你很多关于这个的链接。请注意,这仅对行进行比较。而vlookup或index&match会将一个值与整个列进行比较。谢谢@chancea。我确实需要它将1个值与整列值进行比较。@andrew我是VBA新手如何修改代码以添加索引/匹配?@HoldEncaulfeld索引/匹配不是VBA,而是VBAformula@chancea又对了,,但是,即使它不是一个本机VBA函数,如果您使用
应用程序正确调用它,您仍然可以使用它。工作表函数
(或者在本例中
应用程序
似乎也起作用)使用工作表函数可能会有相当多的问题,最好是简单地将代码嵌入单元格中。在任何情况下,我都对我的答案进行了编辑