且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Excel中使用VBA将列从一张表复制到另一张?

更新时间:2022-12-12 11:59:45

在Excel 2007中,以下功能对我来说是非常正确的。
很简单,执行完整的副本(保留所有格式等):

  Sheets(Sheet1)。列(1).Copy Destination:= Sheets(Sheet2)。列(2)
pre>

列返回一个Range对象,因此这是利用Range.Copy方法。 Destination是此方法的一个选项 - 如果没有提供默认值,则将其复制到粘贴缓冲区。但是当提供时,这是一种简单的复制方式。



当手动复制Excel中的项目时,目标的大小和几何形状必须支持复制的范围。 / p>

I'm trying to write a macro that copies the content of column 1 from sheet 1 to column 2 on sheet 2. This is how the module looks like but, when I run it, I get

Run time error 9, Subscript out of range.

Sub OneCell()
    Sheets("Sheet1").Select
    'select column 1 A1'
    Range("A1:A3").Select

    Selection.Copy
    Range("B1:B3").Select

    ActiveSheet.Paste

    Sheets("Sheet2").Select
    Application.CutCopyMode = False
End Sub

The following works fine for me in Excel 2007. It is simple, and performs a full copy (retains all formatting, etc.):

Sheets("Sheet1").Columns(1).Copy Destination:=Sheets("Sheet2").Columns(2)

"Columns" returns a Range object, and so this is utilizing the "Range.Copy" method. "Destination" is an option to this method - if not provided the default is to copy to the paste buffer. But when provided, it is an easy way to copy.

As when manually copying items in Excel, the size and geometry of the destination must support the range being copied.