将列复制到VBA中的新工作簿表

时间:2015-04-25 11:24:57

标签: excel vba excel-vba

我正在尝试将现有列从工作表复制到新工作簿中的列。

我尝试的代码:

Set NewBook = Workbooks.Add
Sheets("Sheet1").Columns(1).Copy Destination:=NewBook.Sheets("Sheet1").Columns(2)

这是创建工作表但没有复制值! 如果我复制到同一工作簿中的另一个工作表,则此代码有效。

如何在NewBook的{​​{1}}和目标列中创建新工作表?

1 个答案:

答案 0 :(得分:3)

你必须记住旧书,否则Sheets("Sheet1").Columns(1)将引用新添加的Sheet1的第一列,因为此时它是ActiveWorkbook(所以你实际上复制一些东西,但那个东西是一个空列):

Sub qwerty()
    Set w1 = ActiveWorkbook
    Set NewBook = Workbooks.Add
    w1.Sheets("Sheet1").Columns(1).Copy Destination:=NewBook.Sheets("Sheet1").Columns(2)
End Sub

修改#1:

这将重命名新工作簿中的工作表,然后执行复制:

Sub qwerty2()
    Set w1 = ActiveWorkbook
    Set NewBook = Workbooks.Add
    ActiveSheet.Name = "Report"
    w1.Sheets("Sheet1").Columns(1).Copy Destination:=Columns(2)
End Sub