我有下面的代码,它试图打开一个文件名,如果表是空的,每天都会改变。文件名始终被命名为这样:VBA EXCEL:修复“运行时错误'9'”:下标超出范围
- “K:\共享\民\ TEMP \ Available_list_” &年(NOW())&月(NOW())&日(NOW())&“ .TXT”
这背后的原因是自动文件激活,而不是复制,粘贴,每次重命名文件。我更新代码以包含上述路径时收到此错误。 有人可以指出我的错误在哪里吗?您可能会发现下面的代码:
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
使用F8或F8 +班次调试代码,并告诉我们例外情况。 – 2014-10-17 11:57:59