我有一个excel宏,我在一个文件中开发但是当我尝试在另一个相同格式的文件上运行它时,只是不同的数据,我错了。我得到的错误是运行时错误424:下面的行“If del Nothing Then”所需的对象。
sudo pip3 install --upgrade pip setuptools
我不明白的部分是如何在一个文件中丢失对象“del”而不是使用相同的宏丢失另一个文件。
有什么想法? TIA
答案 0 :(得分:0)
Columns("C:F").Select Selection.ClearContents
你在这里不需要.Select
,也不需要在Selection
工作。相反,这样做:
Columns("C:F").ClearContents
每次.Select
次呼叫后跟Selection
上的成员呼叫相同。
这将删除烦人/冗余/效率低下的Select
来电,但无法解决问题。
您的所有变量均未声明。在模块顶部指定Option Explicit
;然后,VBA将拒绝编译您的代码,直到声明所有变量。
例如:
Dim rng As Range
Dim del As Range
现在del
具有有效的编译时对象类型(Range
),在运行时Is Nothing
检查运行时,它将是没有值的Range
对象引用,Is Nothing
检查将评估为True
。
您需要获得"对象的原因"错误是因为del
未声明,并且没有Option Explicit
,代码被允许"声明"在运行时即时变量(听起来很酷,但是主动有害) - 每个未声明的变量都是Variant
。
虽然Variant
可以持有对象引用,但如果尚未分配任何内容,则其类型为Variant/Empty
,而VBA将拒绝处理作为对象参考。
这会成功:
If IsEmpty(del) Then
但IsEmpty
仅适用于Variant
。你想要的是用正确的类型正确地声明一切。