如何比较不同工作表中的两列是否存在非现有值,然后将它们复制到主工作表中?

时间:2015-12-23 12:58:55

标签: excel vba excel-vba

首先,我不是VBA的专家,只是寻找类似的情况复制它们,更改代码并希望最好。

所以我需要制作一个比较两张纸的宏。其中一个工作表包含历史信息和A列中的所有特定名称,其中在另一个工作表中我粘贴每日信息,其中特定名称始终位于C列并从第7行开始。现有名称可能会消失或者可以添加新名称,并且会有重复名称。

我需要的是代码首先比较这两个列的新名称,如果找到它们将它们复制并在历史记录表中过去它们列第2行,现有名称会向下移动,这样他们就不会# 39; t被删除。

简而言之,如果复制不做任何事情,则复制到历史记录表。

提前感谢您提供所有帮助

1 个答案:

答案 0 :(得分:0)

不确定你的逻辑是什么,但这里有一些VBA指针:

比较不同工作表中的列:

如果表格(“Sheet1”)。范围(“ColRow”)。值<>表格(“Sheet2”)。范围(“Col2Row2”)。值然后......

或者您可以用(1)和(2)[或者它们在工作簿中的任何顺序]替换工作表名称。

例如:     如果Sheets(1).Range(“A2”)。Value<>表(2)。范围(“C7”)。值然后......

对单元格的分配工作方式类似。您可以将变量用作索引:

Dim i1 as integer
Dim i2 as integer
i2 = 7
For i1 = 1 to 50
    If Sheets(1).Range("A" + CStr(i1)).Value <> Sheets(2).Range("C" + CStr(i2)).Value Then
        Sheets(1).Range("B" + Cstr(i1)).Value = Sheets(2).Range("C" + CStr(i2)).Value
    End If

    i2 = i2 + 1
Next i1