Tag: scope

Excel:做一个工作簿中的所有模型共享所有的全局variables?

我试图寻找这个问题的答案,但不去哪里。 所以我明白,如果我声明一个variables之外的子/function,它可以访问该模块中的所有子/function。 其他模块呢? 我必须申报吗? 或者我可以使用它而不用声明它? 例如,我有一个用于login多个模块的文本stream对象。 基本上我想要做的是初始化他们一次,我的模块中的所有function可以使用相同的objTF对象写入日志文件。 这些对象在commandbutton_click事件中被初始化。 但我在哪里申报? Dim objFSO As FileSystemObject Dim objTF As TextStream 我是否必须把它们放在所有模块的开头? 或者只有一个模块就足够了? 什么是正确的方法来做到这一点? 谢谢!!

无法从函数内部访问新的工作簿

我试图从其他工作簿访问信息,并在中央位置填充该信息。 具体来说,我试图编写一个函数,可以在将返回目标工作簿的UsedRange.Count单元格中使用。 问题是当我尝试指向工作簿对象时,我不断收到错误#9或#91。 我99.99%确定我正确地命名文件。 更重要的是,当我作为一个Sub运行代码而不是一个函数,它工作正常。 这是工作小组: Sub test() Dim wb As Workbook Dim wb2 As Workbook Dim fileName As String Dim rootDir As String Dim BigSum As Integer rootDir = ActiveWorkbook.Path fileName = "TestSheet1" Set wb = ActiveWorkbook MsgBox rootDir On Error Resume Next Set wb2 = Workbooks(fileName & ".xlsx") Set wb2 = Workbooks.Open(rootDir & […]

对象定义的VBA错误1004

我有一个Excel工作表,上面有一个button。 当按下时,它运行: Sub Open_Constraints() UserForm7.Show End Sub UserForm7也有一个button。 点击后,将运行存储在“UserForm7”下的代码,该代码表示​​: Private Sub CommandButton1_Click() UserForm7.Hide UserForm1.Show End Sub 从那里,用户窗体1有很多的选项框和checkboxif语句如下所示。 但是,只要checkbox或选项框的值为“true”,就会返回对象或应用程序定义的错误。 以下是可能触发代码的一小段代码: If UserForm1.OptionButton1.Value = True Then Sheets(ConstraintsSheet).Cells(ProfessorRow, 3).Value = "Y" ElseIf UserForm1.OptionButton2.Value = True Then Sheets(ConstraintsSheet).Cells(ProfessorRow, 3).Value = "N" End If 有什么想法吗? 每个OptionBox和CheckBox都会触发它,而ConstraintsSheet和ProfessorRow也是明确定义的,就像UserForm和OptionButton的名字一样。 我认为范围问题可能会发生,但不知道如何更好地解决/参考事情。