我想将一个全局变量定义为打开文件的工作表,所以我使用了以下代码:
在Module1中:
Public mySheet As Worksheet
Run Code Online (Sandbox Code Playgroud)
在ThisWorkbook中:
Sub Workbook_Open()
Set mySheet = Sheet1
End Sub
Run Code Online (Sandbox Code Playgroud)
我想在mySheet整个过程中使用它来引用这个特定的工作表,其中一些参考这个工作表已经打开了一个新文件.
它的工作原理开始-当我打开变量设置的文件,宏涉及mySheet.Unprotect,mySheet.Protect和mySheet.Range("A1")工作.但是,当我尝试再次运行它时,我收到一个错误Object variable or With block variable not set,调试将我带到该mySheet.Unprotect行,这是第一次引用工作表.
如何在全局变量中定义此工作表以使定义坚持?
作为参考,我所指的特定宏如下所示,尽管我对不同的代码位有类似的问题:
Sub mySub()
mySheet.Unprotect
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
If .Show <> 0 Then
mySheet.Range("A1") = .SelectedItems(1)
End If
End With
mySheet.Protect
End Sub
Run Code Online (Sandbox Code Playgroud)