【发布时间】:2016-08-16 18:27:45
【问题描述】:
我正在构建一个将数据添加到工作表的用户表单。我的用户表单有一堆子例程,但是在访问我设置到工作表的变量时遇到问题。它目前是一个局部变量(在子中),并已尝试将其放置在此处讨论的模块中:Can a worksheet object be declared globally in Excel VBA。我做了一些进一步的搜索,但没有完全得到我想要的结果。
我对 VBA 很陌生,对编程也很陌生。我已经使用了很多 Excel,并希望通过使用 VBA 创建宏等来做更多事情。这是我目前正在使用的代码:
sub savebutton_click()
Dim trees As Worksheet
Set trees = ThisWorkbook.Sheets("Sheet1")
trees.Cells(1, 1) = Me.TextTreeName
trees.Cells(1, 2) = Me.TextTreeType
End sub
显然我无法从另一个子例程访问局部变量,因此我必须将“树”设为全局变量。我创建了一个模块并将 Dim 替换为 Public,将第二行代码放在 Workbook_Open() 中,然后尝试访问“trees”变量。当我点击“调试”时,我得到一个“无效的外部程序”并突出显示 Workbook_Open() 中的代码。
基本上我只是希望能够从任何子系统访问,比如说,trees.Cells(5,6),我不知道还能用它做什么。有任何想法吗?谢谢!
【问题讨论】: