我想设置一个工作簿变量“Detailwb”作为用户使用Application.FileDialog(msoFileDialogFilePicker)函数选择的工作簿,但我收到以下错误消息:“运行时错误'9':在下面的代码的最后一行中下标超出范围“。我知道工作簿的调用应该采用这种格式;工作簿(“文件名”),但我希望程序调用用户选择的任何.xlsx文件。我只是不确定什么是合适的语法/方法来完成这一点。如何根据文件名设置工作簿变量作为字符串变量? (VBA)
这是一段摘录;
Private Sub CommandButton1_Click()
'Define All Variables
Dim GCell As Range
Dim fDialog As FileDialog, result As Integer
Dim Detailwb As Workbook
Dim Timewb As Workbook
Dim MyDetailReport As String
Dim MyTimeSheet As String
Dim MySheet As String
Dim ProjNum As String
Dim PhaseCode As String
Dim Hours As String
Dim WkEndDate As String
Dim FindRowNumber As Long
Dim FindColumn As Long
'Define Workbooks
Set Timewb = ThisWorkbook
'Find source file
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
fDialog.AllowMultiSelect = False
fDialog.Title = "Select Daily Report File to Import"
fDialog.InitialFileName = "W:\PDX - Mechanical Construction\Operations\Detailing\Daily Tracking Logs\"
fDialog.Filters.Clear
fDialog.Filters.Add "Excel files", "*.xlsx"
If fDialog.Show = -1 Then
MyDetailReport = fDialog.SelectedItems(1)
End If
Workbooks.Open Filename:=MyDetailReport & MyTimeSheet
Set Detailwb = Workbooks(MyDetailReport)
是的,什么是MyTimeSheet?它在这个子程序中没有定义。它是一个全局变量吗?尝试删除“&MyTimeSheet”并查看会发生什么 –