【问题标题】:How to consolidate Sheet1 and Sheet2 in Sheet3?如何在 Sheet3 中合并 Sheet1 和 Sheet2?
【发布时间】:2020-02-26 13:05:18
【问题描述】:

我需要将 sheet1(2 列:A=REFERENCE 和 B=QTY)和 sheet2(2 列:B=REFERENCE 和 C=QTY)与 sheet3 中的结果合并,例如:sheet1 的 A=REFERENCE 与 sheet2(唯一数据)和 B=QTY sheet1 的 SUM 和 C=QTY sheet2 的 SUM。

表 1:

表2:

Sheet3:结果和差异仅在列中:A、B 和 C 其他列有 procv。

如果在另一台 PC 上不起作用,我使用了“记录宏”和工作簿。

Sub consolidar()
'
' consolidar Macro
'

'
    Selection.Consolidate Sources:=Array( _
        "'C:\Users\epontes\Desktop\[APR GR e PICAGEM RENAULT VBA.xlsm]02 GR RENAULT (Consolidar)'!R1C1:R1000C2" _
        , _
        "'C:\Users\epontes\Desktop\[APR GR e PICAGEM RENAULT VBA.xlsm]03 CONTAGEM JAP'!R2C2:R1401C3" _
        ), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
    Range("A3").Select
End Sub

【问题讨论】:

  • 如果工作簿中的数据在打开时具有完全相同的格式,则代码将起作用。如果它在另一台 PC 上不起作用,在我看来,这与代码中引用的文件路径/权限有关。尝试将文件路径替换为对工作簿的对象引用。

标签: excel vba multiple-columns consolidation


【解决方案1】:

您的代码引用了 Worksheet 对象的文件路径,因此只有在工作簿存储在完全相同的位置时才会运行。因此,将其发送给其他人或在另一台 PC 上打开将导致它失败。在这种情况下,文件路径在很大程度上是多余的,您可以像这样从工作表引用中简单地省略它们:

Sub consolidar()
    Selection.Consolidate Sources:=Array( _
        "'02 GR RENAULT (Consolidar)'!R1C1:R1000C2", _
        "'03 CONTAGEM JAP'!R2C2:R1401C3"), _
        Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
    Range("A3").Select
End Sub

【讨论】:

    猜你喜欢
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    相关资源
    最近更新 更多