【问题标题】:Pasting on the next row in another worksheet粘贴到另一个工作表的下一行
【发布时间】:2016-02-23 01:27:16
【问题描述】:

我是编程新手,并试图通过使用宏记录器来学习 VBA 的基础知识。我正在处理一个小型 VBA 项目,需要从 C 列、第 2 列和 H 列、第 1 列复制数据,然后将它们作为单列粘贴到第 3 列 A 列上。第一部分很简单。我从表 2 上的 Col C 复制到表 3 上的 Col A。第二部分是从表 1 上的 Col.H 复制,然后在表 3 上的 Col A 上找到下一个可用行。我的问题是如何获取我的宏将复制的数据粘贴到工作表 3、Col A 的下一个可用行?我正在尝试调试,看起来问题在于选择下一个空行。即使定义了 NextRow,它看起来也不像 Cells.NextRow.Select 是正确的语法。这是我的代码:

Sub Macro2()

' copy from Sheet2

Sheets("Sheet2").Select

Range("C7").Select

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

' paste on Sheet3

Sheets("Sheet3").Select

Range("A1").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

' copy from Sheet1

Sheets("Sheet1").Select

Range("H2").Select

Range(Selection, Selection.End(xlDown)).Select

Application.CutCopyMode = False

Selection.Copy

' paste on Sheet3

Sheets("Sheet3").Select

NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1

**Cells.NextRow.Select**

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

End Sub

仅供参考,表 1 和表 2 分别在第 1 行和第 6 行具有列标题。我不想复制那些,所以我硬编码了要复制的范围的起点。我的变量“NextRow”在我调试时似乎正在工作,但问题似乎在于下一个可用行的实际选择。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    NextRow 是一个数字,而不是 Range()

    Sheets("Sheet3").Range("A" & NextRow).Select
    

    但是你真的应该清理你的代码并避免使用.Select。我将进行编辑以提供帮助。

    Sub Macro2()
    
    ' copy from Sheet2
        With Sheets("Sheet2")
            .Range(.Range("C7"), .Range("C7").End(xlDown)).Copy
        End With
    
    ' paste on Sheet3
        Sheets("Sheet3").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    
    ' copy from Sheet1
        With Sheets("Sheet1")
            .Range(.Range("H2"), .Range("H2").End(xlDown)).Copy
        End With
    
    ' paste on Sheet3
        With Sheets("Sheet3")
            NextRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            .Range("A" & NextRow)..PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End With
    
    End Sub
    

    【讨论】:

    • 谢谢!现在就像一个魅力。快速提问:我为什么要避免使用 .select?
    • @MilesToGoBeforeISleep 请参阅stackoverflow.com/questions/10714251/…,因为它在工作时会导致错误的引用,并且实际上会添加额外的代码。
    • 将使用这个引用来避免使用 .select。再次感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2016-11-17
    • 2022-06-13
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2022-07-26
    相关资源
    最近更新 更多