gpt4 book ai didi

vba - 公共(public)变量超出范围

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

当执行转移到不同模块中的子程序时,我的公共(public)变量正在失去作用域。我不明白为什么会这样。

模块 A:

Option Compare Database

Public db As DAO.Database
Public xlApp As Excel.Application

Sub Main()

Dim db As DAO.Database

Set db = CurrentDb

ProcessFiles ' upload the data from the report files
AppendToPentana ' transfer the data from the main tables to the pentana export table
ProduceFinalExport ' export the final data to Excel

End Sub

模块 B:

Sub ProcessFiles()

Dim recSet As Recordset

' open a recordset containing keywords to look for in the file names to identify the area
Set recSet = db.OpenRecordset("tblFiles")

' rest of code

End Sub

在模块 B 中,变量 db 已设置为 Nothing,我收到一个对象引用错误。我尝试使用旧的“全局”声明而不是公共(public)声明,结果相同。

公共(public)变量是常用的,我不明白这里出了什么问题。

最佳答案

Sub Main()

Dim db As DAO.Database

Set db = CurrentDb

您在 Main 中有一个额外的 local 变量 db,这是您设置的。局部变量优先于全局变量。

只需从 Main 中删除 Dim 行即可。

关于vba - 公共(public)变量超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45820319/

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