我正在尝试将一系列数据从一个工作表复制到新工作表。下面的代码可以正常工作,直到最后一行,这时它会引发“应用程序定义的错误或对象定义的错误”。
对于新工作表范围,我似乎与对现有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
答案 0 :(得分:0)
rngDataset
和rngSolution
不是命名范围,因此范围属性 Name 不可用。您可以设置名称,例如,
rngDataset.Name = "Dataset"
尽管不清楚为什么要这么做。