VBA Excel两个工作表中的单列比较



我是VBA的新手,需要一些帮助才能满足我的需求。我有两张工作表。一个工作表将包含整数,这些整数将根据用户输入而变化。(B列工作表1)。另一个工作表将有从1到255的恒定整数,每256次。(在B列表2-256中,1’s、256-2’s…)(即总共65280个细胞)。我需要比较两张表中的B列,并将结果写在D列表2中。如果两个表中的两个列值都匹配,则结果列应等于表2中的B列。否则,结果列应具有0。我该怎么做?

对于较大的输入,听觉单元比较将消耗更多的时间。有其他方法吗?

要做到这一点,您可以遍历所有行,比较每行的单元格并写入结果。这是代码:

   Public FirstSheetName As String
Public SecondSheetName As String
Public ResultSheetName As String
Public FirstSheetCol As String
Public SecondSheetCol As String
Public ResultSheetCol As String
Public StartIndex As Long
Public EndIndex As Long
Public Sub CompareTwoCols()
Dim i As Long
Dim ii As Long
FirstSheetName = "Sheet1"
FirstSheetCol = "B"
SecondSheetName = "Sheet2"
SecondSheetCol = "B"
ResultSheetName = "Sheet2"
ResultSheetCol = "D"
StartIndex = 1
EndIndex = 65280
'Initialized result with 0's
For i = StartIndex To EndIndex
If Sheets(SecondSheetName).Range(SecondSheetCol & i).Text <> "" Then
    Sheets(ResultSheetName).Range(ResultSheetCol & i).Formula = 0
End If
Next i
'Loop throuh all first sheet items skip if blank
For ii = StartIndex To EndIndex
If Sheets(FirstSheetName).Range(FirstSheetCol & ii).Text <> "" Then
'Loop through all second sheet items
    For i = StartIndex To EndIndex
    'skip if blank or has a value in it
    If Sheets(SecondSheetName).Range(SecondSheetCol & i).Text <> "" _
    And Sheets(ResultSheetName).Range(ResultSheetCol & i).Text = "0" Then
        If Sheets(FirstSheetName).Range(FirstSheetCol & ii).Value = Sheets(SecondSheetName).Range(SecondSheetCol & i) Then
            ' Match Found
            Sheets(ResultSheetName).Range(ResultSheetCol & i).Formula = ThisWorkbook.Sheets(SecondSheetName).Range(SecondSheetCol & i)
        End If
    End If
    Next i
End If
Next ii
End Sub

只需将FirstSheetName、SecondSheetName和ResultSheetName设置为适用的图纸即可。然后,设置FirstSheetCol、SecondSheetCol和ResultSheetCol。最后,将StartIndex设置为第一行,将End Index设置为最后一行。我希望它能有所帮助,Mike

您实际上不需要使用VBA。

您可以使用VLOOKUP 创建函数

在表数组的第一列中搜索值并返回表数组中另一列中同一行中的值。

示例:

=IF(ISERROR(VLOOKUP(Sheet1!A1;Sheet2!A1:A15;1;0))=TRUE;0;Sheet1!A1)

http://office.microsoft.com/en-us/excel-help/vlookup-HP005209335.aspx

最新更新