繁体   English   中英

将范围从一张纸复制/粘贴到另一张纸

[英]Copy/Paste Range from one sheet to another

我正在尝试将具有工作表 col A 中数据的单元格复制到第 2 行的另一个工作表。使用以下脚本,源工作表名称输入到 Ave RLD 工作表的第 1 行。 如果这就是我尝试做的全部,它将遍历所有工作表并将它们的名称放在 Ave RLD 的下一个列中。 当我尝试从 col A 复制数据并将其粘贴到 Ave RLD 时,我得到一个运行时错误 1004。我留下了我一直在尝试的所有注释行。 我错过了什么?

Dim WS_count As Long
Dim I As Long
Dim ws As Worksheet
Dim ColNum As Long
Dim wksName As String
Dim NumRows As Long

ColNum = 1

Sheets.Add Type:=xlWorksheet
ActiveSheet.Name = "Ave RLD"

For Each ws In ActiveWorkbook.Worksheets
    If Left(Trim(ws.Name), 3) = "RLD" Then
        wksName = ws.Name
        NumRows = ws.Range("A" & Rows.Count).End(xlUp).Row
        MsgBox NumRows
        With Worksheets("Ave RLD")
            .Cells(1, ColNum).Value = wksName
            ws.Range(Cells(1, 1), Cells(NumRows, 1)).Copy
            .Range(Cells(2, ColNum)).Paste.Values
            '.Range(Cells(2, ColNum)).Value = .Range(("A1"), Range("A1").End(xlUp))
            '.Range(Cells(2, ColNum)).Value = ws.Range("A" & Rows.Count).End(xlUp).Row
            'MsgBox ws.Cells(1, 26).Value
            '.Cells(2, ColNum).Value = .Worksheets(wksName).Cells(1, 26)
            '.Worksheets(wksName).Cells(1, 1).Copy
            'Worksheets(wksName).Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Copy
            '.Cells(2, ColNum).Paste
            
            ColNum = ColNum + 1
        End With
    End If
Next ws

这会做你想要的吗?

这个站点上有很多,但是如果ws不是活动表,则此行将出错,因为您没有完全限定所有范围

ws.Range(Cells(1, 1), Cells(NumRows, 1)).Copy

下面评论的另一行只需要RangeCells ,您的粘贴值语法也已关闭 - 录制宏是整理此类细节的一种方法。

Dim WS_count As Long
Dim I As Long
Dim ws As Worksheet
Dim ColNum As Long
Dim wksName As String
Dim NumRows As Long

ColNum = 1

Sheets.Add Type:=xlWorksheet
ActiveSheet.Name = "Ave RLD"

For Each ws In ActiveWorkbook.Worksheets
    If Left(Trim(ws.Name), 3) = "RLD" Then
        wksName = ws.Name
        NumRows = ws.Range("A" & Rows.Count).End(xlUp).Row
        MsgBox NumRows
        With Worksheets("Ave RLD")
            .Cells(1, ColNum).Value = wksName
            ws.Range(ws.Cells(1, 1), ws.Cells(NumRows, 1)).Copy 'fully qualify with ws
            .Cells(2, ColNum).PasteSpecial xlpasteValues 'just Cells
            ColNum = ColNum + 1
        End With
    End If
Next ws

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM