【问题标题】:Compare [Sheet 2] to [Sheet 1] & add any missing unique numbers in [Sheet 1] to the bottom of table in [Sheet 2] [closed]比较 [Sheet 2] 和 [Sheet 1] 并将 [Sheet 1] 中缺少的唯一编号添加到 [Sheet 2] 的表格底部 [关闭]
【发布时间】:2020-07-18 10:38:24
【问题描述】:

只是想知道是否有人可以帮助解决以下问题: 我有两张纸:

  1. 迷你大师
  2. 关键路径

每天都会将新数据添加到迷你主控器中。 两个迷你主关键路径都在 A 列中保存唯一编号。

我想运行一个宏,将 Mini Master 中的 A 列与关键路径中的 A 列进行比较。

如果 Mini Master 有任何唯一编号(未列在关键路径的 A 列中),我想将它们复制并粘贴到关键路径表的底部。

数据只应流向 Mini Master > 关键路径。从不关键路径>迷你大师。

示例:如果我能找到一个宏来识别丢失的唯一数字,例如下图中的那个(以粉红色突出显示),那就太好了。

迷你母版

然后将该唯一编号复制并粘贴到关键路径表的表格底部(也以粉红色突出显示)

关键路径表

输入数据后,我编写了一个代码,该代码将使关键路径表与 Mini Master 中所做的任何更改保持同步,然后将填充列 B、C 和 D。

提前感谢您的帮助。

【问题讨论】:

  • 你试过什么?请显示您的代码,并告诉您卡在哪里。请注意,WorksheetFunction.Match method 可能有助于查看某个值是否在某个范围内匹配。

标签: excel vba loops copy-paste


【解决方案1】:

试试,

Sub test()
    Dim Ws As Worksheet
    Dim toWs As Worksheet
    Dim rngDB As Range, rngT As Range
    Dim vDB As Variant, vR() As Variant
    Dim i As Long, n As Long, j As Integer

    Set Ws = Sheets("MINI MASTER")
    Set toWs = Sheets("CRITICAL PATH")

    vDB = Ws.Range("a1").CurrentRegion
    With toWs
        Set rngDB = .Range("a2", .Range("a" & Rows.Count).End(xlUp))
        For i = 2 To UBound(vDB, 1)
            If WorksheetFunction.CountIf(rngDB, vDB(i, 1)) Then
            Else
                n = n + 1
                ReDim Preserve vR(1 To 4, 1 To n)
                For j = 1 To 4
                    vR(j, n) = vDB(i, j)
                Next j
            End If
        Next i
        Set rngT = .Range("a" & Rows.Count).End(xlUp)(2)
        If n Then
            rngT.Resize(n, 4) = WorksheetFunction.Transpose(vR)
        End If
    End With
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 2023-03-29
    • 2020-05-23
    • 1970-01-01
    • 2022-12-02
    • 1970-01-01
    相关资源
    最近更新 更多