如何在运行时生成的工作簿使用范围variables

我正在尝试访问在运行时生成的Excel工作簿

我正在使用这个代码'

Dim w2 As Workbook Dim r as range Set w2 = Workbooks.Add Set w2 = ActiveWorkbook Set r = w2.Sheets("Sheet1").Range(Cells(5, 4), Cells(5, 4)) r.PasteSpecial Paste:=xlPasteValues' 

线路号码 5显示了这个错误“应用程序定义或对象定义的错误”

有人可以帮我解决这个问题

1)这条线不需要:

 Set w2 = ActiveWorkbook 

因为下一行已经返回新的工作簿对象:

 Set w2 = Workbooks.Add 

2)你应该完全限定Cells对象,即你应该指定到哪个工作簿/表单元格属于:

 Set r = w2.Sheets("Sheet1").Range(w2.Sheets("Sheet1").Cells(5, 4), w2.Sheets("Sheet1").Cells(5, 4)) 

或更短:

 With w2.Sheets("Sheet1") Set r = .Range(.Cells(5, 4), .Cells(5, 4)) End With 

但是因为你的Range对象只包含单个单元格,所以你可以简单地使用:

 Set r = w2.Sheets("Sheet1").Cells(5, 4)