我不确定这是否适合这个问题,但这有点超出了我的知识基础。
我的问题是我有一段代码只是导入文本文档并使用空格分隔符。我已在终端上多次使用此代码并且可以正常工作。然而,当我在一个不同的终端上运行它时,我得到一个错误,其他时候它很好。
我的代码是:
Dim Ret
Ret = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If Ret <> False Then
With Sheets("Primary").QueryTables.Add(Connection:= _
"TEXT;" & Ret, Destination:=Workbooks("Importer").Sheets("Primary").Range("$A$1"))
.Name = "Sample"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat, xlTextFormat)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
我得到一个&#34;运行时错误9:下标超出范围&#34;当我运行此代码时。调试菜单为问题选择此代码:
使用表格(&#34;主要&#34;)。QueryTables.Add(连接:= _ &#34; TEXT;&#34; &安培; Ret,Destination:=工作簿(&#34; Importer&#34;)。表格(&#34; Primary&#34;)。范围(&#34; $ A $ 1&#34;)
我不明白是什么原因造成这种情况仅限于某些计算机终端。据我所知,我们所有的Excel程序都设置相同。
非常感谢任何帮助。
答案 0 :(得分:0)
&#34;运行时错误9:下标超出范围&#34;是由给予数组的无效索引/名称引起的...比如代码Sheets("Primary")
但没有名为 Primary 的工作表..
具体到案例,在给定信息的情况下,我怀疑由于工作簿的名称已经更改而发生错误...因此代码Workbooks("Importer")
尝试查找名为 Importer 的工作簿并失败。