Excel宏不能在不同的文件中工作

时间:2018-04-16 17:12:50

标签: vba excel-vba excel

我有一个excel宏,我在一个文件中开发但是当我尝试在另一个相同格式的文件上运行它时,只是不同的数据,我错了。我得到的错误是运行时错误424:下面的行“If del Nothing Then”所需的对象。

 sudo pip3 install --upgrade pip setuptools

我不明白的部分是如何在一个文件中丢失对象“del”而不是使用相同的宏丢失另一个文件。

有什么想法? TIA

1 个答案:

答案 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。你想要的是用正确的类型正确地声明一切。