我正在使用一个子过程将文件路径/工作簿和工作表存储在公共变量中,然后模块中的其他子过程可以访问这些变量。这是一些示例代码:
Public myfp As String
Public mywb As Workbook
Public myws As Worksheet
Sub FilePaths()
myfp = Application.GetOpenFileName(Title:="Please select the file.")
Set mywb = Workbooks.Open(myfp, 0)
If Left(mywb.Sheets(1).Name, 2) = "01" Then
Set myws = mywb.Sheets(1)
Else
Set myws = mywb.Sheets(2)
End If
mywb.Saved = True
mywb.Close
Exit Sub
Sub Stuff()
Dim wb As WorkBook
Dim ws As Worksheet
Set wb = ActiveWorkbook
Set ws = wb.Sheets(1)
ws.Range("A1").Value = wb.ws.Range("A1").Value
End Sub
所以我的第一个子确定我需要哪个表,我的第二个子应该将此表单元格的值放入我的表中。但是我得到的只是错误。我想这可能是因为我必须打开文件所以我尝试了一些我知道应该可以工作的东西:
SUb Stuff()
Range("A1").Formula = "='[" & myfp & "]" & myws & "'!A1"
End Sub
然而这也行不通。我究竟做错了什么?