避免使用activesheet

我有下面的代码。 我尝试运行时出现400错误。

Sub sbInsertingColumns() Dim NumRows As Long Dim Transit As Worksheet Set Milestone = ActiveWorkbook Milestone.Activate Set TransitFile = Workbooks.Open("Y:\File.xlsx") TransitFile.Sheets("General").Activate Columns("A:B").Copy End Sub 

代码将工作,如果我改变

  Columns("A:B").Copy 

 ActiveSheet.Columns("A:B").Copy 

这是为什么? 我以为我已经使TransitFile中的General表单激活了吗?

您可以使用TransitFile.Sheets("General").Columns("A:B").Copy而不必事先激活工作表。 或者您可以使用With来引用正确的工作簿。