【发布时间】:2021-02-23 21:23:55
【问题描述】:
第一次在这里查询!
我想在 Excel 工作表上定义我的数据框。但是,当我尝试设置范围时,我得到一个运行时 91 错误。
Dim i As Long
Dim WSCount As Long
WSCount = Application.ActiveWorkbook.Worksheets.Count
For i = 1 To WSCount Step 1
Select Case Worksheets(i).Name
Case "Page1_1", "Page2_2", "Written", "Waived", "Earned"
Dim LR As Long
LR = Worksheets(i).Cells(Rows.Count, 1).End(xlUp).Row + 1
Dim LC As Long
LC = Worksheets(i).Cells(1, Columns.Count).End(xlToLeft).Column
Dim DataFrame As Range
**DataFrame = Worksheets(i).Range("A2").Resize(LR, LC)**
DataFrame.ClearContents
End Select
Next i
LR 和 LC 都生成正确答案。
但是,当我尝试将 Dataframe 声明为 Range,然后按以下方式设置 Dataframe 时,我收到一个我无法弄清楚的错误...
“运行时错误‘91’: 对象变量或未设置块变量”
有人知道问题是什么吗?
提前非常感谢!
亚瑟
【问题讨论】:
-
假设您想从
A1开始,只需使用Set Dataframe = Range("A1").Resive(LR, LC)- 您的方法没有任何问题,这似乎更容易遵循。您那里还有不合格的对象,并且依赖于Active对象,这些对象有时可能会很混乱。最好是明确的。 -
@urdearboy 关于不合格对象;我想 Dataframe.clearcontents 然后根据工作表名称使用 Select Case 循环遍历工作表。这样我认为我需要保留对象 activeworkbook 和 activesheet
-
随手设置工作表
-
哪一行出现错误?我怀疑问题出在您不合格的
Cells对象上。但是,您在这里拥有的代码还不足以知道。分享更多相关代码... -
你为什么使用
Row + 1和Cells(2, LC)?我的意思是+ 1和2?
标签: excel vba runtime-error