【问题标题】:Excel/VBA combine tablesExcel/VBA 组合表格
【发布时间】:2020-06-19 05:49:13
【问题描述】:

在我看来,这应该不难,所以更令人沮丧的是我无法弄清楚。这是在 Excel 2016 和 VBA 中。我要做的是在 2 个不同的选项卡中复制 2 个不同的数据表,并使用一个简单的按钮将它们组合到第三个选项卡中。 Reddit 上的一位乐于助人的用户让我开始了,但我一直在调试。运行时错误 438 发生在 LRowB 的开头,我已验证选项卡的名称是正确的。代码如下:

Private Sub CommandButton1_Click()

Dim LRowA As Long
Dim LRowB As Long

LRowA = Sheets("PASSFAIL FEMALE").Cells(Sheets("PASSFAIL FEMALE").Rows.Count, "A").End(xlUp).Row
Sheets("PASSFAIL FEMALE").Range("A2:H" & LRowA).Copy
Sheets("Final Test Stat Sheet").Range("A2").Paste

LRowB = Sheets("PASSFAIL MALE").Cells(Sheets("PASSFAIL MALE").Rows.Count, "A").End(xlUp).Row
Sheets("PASSFAIL MALE").Range("A2:H" & LRowB).Copy
Sheets("Final Test Stat Sheet").Range("A2" & LRowA + 1).Paste

Sheets("Final Test Stat Sheet").Range("H27").Value = Now

Application.CutCopyMode = False

End Sub

【问题讨论】:

    标签: excel


    【解决方案1】:

    当你 CopyPaste 时,操作应该在同一行(你可以省略后者)。

    但是,如果您只需要值并使用 pastespecial,则确实需要单独一行。

    顺便说一句,使用With 可以整理代码。

    Private Sub CommandButton1_Click()
    
    Dim LRowA As Long
    Dim LRowB As Long
    
    With Sheets("PASSFAIL FEMALE")
        LRowA = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("A2:H" & LRowA).Copy
        Sheets("Final Test Stat Sheet").Range("A2").pastespecial xlvalues
    End With
    
    With Sheets("PASSFAIL MALE")
        LRowB = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("A2:H" & LRowB).Copy
        Sheets("Final Test Stat Sheet").Range("A" & LRowA + 1).pastespecial xlvalues
        Sheets("Final Test Stat Sheet").Range("H27").Value = Now 'might overwrite?
    End With
    
    Application.CutCopyMode = False
    
    End Sub
    

    【讨论】:

    • 所以这行得通,但我需要复制的值,而不是用于计算它们的公式。我如何将其指定给 VBA?
    • 以上修改。
    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多