VBA二次学习笔记(2)——两个Excel表内容比较

说明(2018-9-3 22:38:58):

1. 就是之前问同事要来的作业,有两个格式一样的Excel文件,一个是正确答案,一个是员工作答的。通过代码将两个文件进行比对,把不同之处列出来。

正文:

Sub test1()
    Dim wb1 As Worksheet
    Dim wb2 As Worksheet
    Dim wb As Worksheet
    Set wb1 = Workbooks("1.xlsx").Sheets(1)
    Set wb2 = Workbooks("2.xlsx").Sheets(1)
    Set wb = Workbooks("test.xlsm").Sheets(1)
    Dim n As Integer
    n = 2
    For i = 3 To 14
      If wb1.Range("b" & i).Value <> wb2.Range("b" & i).Value Then
        wb.Range("a" & n).Value = wb1.Range("a" & i).Value
        wb.Range("b" & n).Value = wb1.Range("b" & i).Value
        wb.Range("c" & n).Value = wb2.Range("b" & i).Value
        n = n + 1
      End If
    Next
    
    For i = 24 To 31
      If wb1.Range("b" & i).Value <> wb2.Range("b" & i).Value Then
        wb.Range("a" & n).Value = wb1.Range("a" & i).Value
        wb.Range("b" & n).Value = wb1.Range("b" & i).Value
        wb.Range("c" & n).Value = wb2.Range("b" & i).Value
        n = n + 1
      End If
    Next
End Sub

效果:

1.xlsx和2.xlsx,有两个数字不一样

      

在宏文件所在的Excel里的显示结果:

总结:

1. 主要使用了获取工作簿的方法WorkBooks();用了两个for循环,因为表格不连续;用了一个变量n,控制在主表中向下排列不同数据。

2.  WorkBooks()获取工作簿需要文件打开,下一步可以使用open方法,在不用提前打开文件的条件下完成操作。

猜你喜欢

转载自www.cnblogs.com/Jacklovely/p/9581680.html