gpt4 book ai didi

excel - Option Explicit 看不到一个未声明的变量,但适用于其他变量

转载 作者:行者123 更新时间:2023-12-02 06:37:04 25 4
gpt4 key购买 nike

对于 Debug.Print 行,一切正常,这意味着 Option Explicit 捕获错误并显示有关 undefined variable 的弹出窗口。

但是,如果我删除了 Debug.Print 行(我添加该行是为了查看 Option Explicit 是否有效),代码就会成功执行。编译也成功了。不应该是第二个 ReDim 语句中的“vDailBuys”而不是“vDailyBuys”,因为存在拼写错误。

为什么没有检测到这个拼写错误?

我使用第二个ReDim来清除数组内容,不确定它是否是推荐的方式,但它的工作原理就像一个魅力。

Option Explicit
Option Base 1

Sub test()

Dim vDailyBuys() As Variant

ReDim vDailyBuys(1, 10)
ReDim vDailBuys(1, UBound(vDailyBuys, 2)) As Variant
Debug.Print abcde

End Sub

最佳答案

非常简单,通过 Redim vDailBuys,您声明了一个新变量 vDailBuys,而不是您打算调整原始 vDailyBuys 的大小。

来自MSDN - Redim Statement :虽然“ReDim 语句用于调整已正式声明的动态数组的大小或调整大小”,但它“如果它声明的变量在模块级别或过程级别不存在,则充当声明性语句”强>。” (强调我的)。

请注意,同一篇文章主张仅使用 Redim 来重新调整数组的尺寸。尽管它可以是声明性语句,但在您的情况下是无意的,它可能会导致 Option Explicit 不会标记的冲突。

关于excel - Option Explicit 看不到一个未声明的变量,但适用于其他变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50383114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com