VBA EXCEL:修复“运行时错误”9“”:下标超出范围

我有下面的代码,试图打开一个文件名,每天的变化,如果工作表是空的。 文件名总是这样命名的:

  • “K:\ Shared \ Num \ Temp \ Available_list_”&Year(Now())和Month(Now())&Day(Now())&“.txt”

这背后的原因是自动化文件激活,而不是每次复制,粘贴和重命名文件。 我更新代码以包含上述path时收到此错误。 有人能指出我的错误在哪里吗? 你可能会发现下面的代码:

Private Sub UserForm_Initialize() Application.ScreenUpdating = False If IsEmpty(A_Regular.Range("A2")) Then Dim TxtPath, TxtName As String TxtPath = "K:\Shared\Num\Temp\Available_list_" & Year(Now()) & Month(Now()) & Day(Now()) & ".txt" TxtName = Year(Now()) & Month(Now()) & Day(Now()) & ".txt" Workbooks.OpenText Filename:=TxtPath, Origin:=437, StartRow:=1, _ DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _ Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _ Other:=True, OtherChar:=",", FieldInfo:=Array(Array(1, 1), _ Array(2, 1), Array(3, 5), Array(4, 1), Array(5, 1)), TrailingMinusNumbers:=True '-------------------------------------------------------------------------' ' Setup Sheet ' '-------------------------------------------------------------------------' With Workbooks(TxtName) '-------------------------------------------------------------------------' Dim TotalFree, TotalFields As Double TotalFree = Application.WorksheetFunction.CountIf(Range("D:D"), "FREE") Range("A1:E" & TotalFree).Copy End With Workbooks("Matcher.xlsm").Activate Activation.Visible = True Activation.Activate With Activation Range("A:E").PasteSpecial Range("1:1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("A1") = "GSM" Range("B1") = "Type" Range("C1") = "Date" Range("D1") = "Status" Range("E1") = "Number" Range("F1") = "Pattern" Call Encryption End With Activation.Cells.Clear Windows(TxtName).Close Control.Activate Activation.Visible = False End If Application.WindowState = xlMinimized NumberManagement.Show 0 End Sub 

您打开一个名为"Available_list_" & Year(Now()) & Month(Now()) & Day(Now()) & ".txt" (文件名无path)的文件,但是您尝试按Year(Now()) & Month(Now()) & Day(Now()) & ".txt" without Available_list 。 这个名字的工作表当然不存在。