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

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

我试过的代码:

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

这是创build一个工作表,但没有值被复制! 如果我复制到同一工作簿中的其他工作表,此代码工作。

我应该如何在NewBook创build一个新工作表并在该工作sheet定位目标列?

您必须记住旧书,否则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