【发布时间】:2019-01-27 03:01:40
【问题描述】:
我正在尝试将一系列数据从一个工作表复制到一个新工作表。下面的代码可以正常工作,直到最后一行,此时它会抛出“应用程序定义或对象定义的错误”。
看起来我对新工作表范围所做的事情与我对现有 wks/rng 所做的事情相同;不明白为什么 [rngSolution] 没有被实例化?
此代码位于工作簿模块中。我正在使用 Office/Excel 365。我对 Access 对象模型中的 VBA 非常熟悉,但在 Excel obj 模型中却不太熟悉。
感谢您的帮助。
Application.DisplayAlerts = False
On Error Resume Next
'-- delete the Solution wks if it exists
Worksheets("Solution").Delete
On Error GoTo PROC_ERR
Application.DisplayAlerts = True
'-- (re)create the Solutions wks
Worksheets.Add(After:=Sheets(Sheets.Count)).Name = "Solution"
'-- copy original data to new worksheet/range
Dim rngDataset As Range, rngSolution As Range
Set rngDataset = ActiveWorkbook.Sheets("DataSet").Range("A1").CurrentRegion
Debug.Print rngDataset.Name; " "; rngDataset.Rows.Count; " "; rngDataset.Columns.Count
Set rngSolution = ActiveWorkbook.Sheets("Solution").Range("A1")
rngDataset.Copy Destination:=rngSolution
Debug.Print rngSolution.Name; " "; rngSolution.Rows.Count; " "; rngSolution.Columns.Count
【问题讨论】:
-
只要我在两个 debug.print 行中将
rngDataset.Name与rngDataset.address和rngSolution.Name与rngSolution.address进行更改,代码就可以正常工作。