在工作表1中存储的VB函数中使用工作表2

时间:2012-04-06 09:17:51

标签: excel-vba excel-2007 vba excel

我想比较2个不同工作表中2列的值,如果值相等,则第一个工作表中的相应单元格将在第二个工作表的相应单元格中采用相同的值。所以我使用了循环函数,但问题是我无法在第一张表中的函数中定义和使用第二张表。

我将非常感谢指导我解决这个问题。

您将在下面找到我想要使用的功能:

Sub Test_V01()
    Dim i As Integer
    Dim j As Integer

    Dim Bouira As Excel.Worksheet

    For j = 3 To 100
        For i = 3 To 120
            If Cells(j, 3) = Bouira!Cells(i, 30) Then 
                Cells(j, 12) = Bouira!Cells(i, 31)
            End If
        Next i                 
    Next j

End Sub

2 个答案:

答案 0 :(得分:2)

  1. 分别用Cells(j, 3)Cells(j, 12)替换Me.Cells(j, 3)Me.Cells(j, 12),以确保始终使用此工作表中的单元格,而不是来自活动单元格的单元格片材。

  2. Bouira!Cells替换为Bouira.Cells。工作表中没有集合,其元素的字面值为Cells

  3. 在进入循环之前分配对Bouira的引用:

    Set Bouira = ThisWorkbook.Worksheets("Sheet name")
    

答案 1 :(得分:1)

这将设置对工作表Bouira的引用:

Sub Test_V01()
    Dim i As Integer, j As Integer, Bouira As Worksheet

    Set Bouira = Worksheets("Bouira")

    For j = 3 To 100
        For i = 3 To 120
            If Cells(j, 3) = Bouira.Cells(i, 30) Then
                Cells(j, 12) = Bouira.Cells(i, 31)
            End If
        Next i
    Next j

End Sub