基于从另一个Excel文件在列A上查找值来复制整行

时间:2015-04-15 13:48:36

标签: mysql excel vba excel-vba

我有两个Excel文件:

  1. 约175k行和6.5k列 - 列A有一些唯一的数字,其余部分有一些重复值
  2. 大约600k行和2列 - 列A有一些唯一的数字,列B有一些重复的文本
  3. 基于Excel 2中的A列,我有一些唯一的数字,我需要将它们与Excel中的A列相匹配。一旦完成,行的其余部分需要以某种方式(重复值)复制到另一个表中。完成后,根据复制的数据,我们需要识别A列Excel 1中的值,该值在其余行上有一个或多个重复值。

1 个答案:

答案 0 :(得分:1)

所以你的问题并不是非常具体,这使得它很难回答。但是,我相信我明白你在问什么。

我假设您将打开其中一个工作簿。 (要么是Excel 1'要么是' Excel 2'然后想要运行一个宏来完成繁重的工作。这里有一些示例代码供您试用。我假设你将以Excel 1'打开然后我将您的匹配项复制到新工作表而不是新工作簿。

Dim wbk as Workbook
Dim Total1Rows as Long
Dim Total2Rows as Long
Dim ws as Worksheet
Dim NewRows as Int
Application.ScreenUpdating = False
Set wbk = Workbooks.Open(" file location of 'Excel 2' ")
Set ws = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = "Pick a Name"
Total1Rows = Worksheets(" 'Excel 1' name of worksheet ").UsedRange.Rows.Count
Total2Rows = wbk.Worksheets(" 'Excel 2' name of worksheet ").UsedRange.Rows.Count
For i = 1 to Total1Rows
    For j = 1 to Total2Rows
        If Worksheets(" 'Excel 1' name of worksheet ").Range("A" & i) = wbk.Worksheets(" 'Excel 2' Name of Worksheet ").Range("A" & j) Then
            NewRows = Worksheets(ws.Name).Range("A" & Rows.Count).End(xlUp).Row
            wbk.Worksheets(" 'Excel 2' name of worksheet").Range("A" & j & ":Z" & J).Copy
            Worksheets(" 'Excel 1' name of worksheet").Range("A" & NewRows).PasteSpecial
        End If
    Next j
Next i

这实际上是我第一次发布答案,所以请原谅。