我需要转换包含定界符“ |”的文件到使用VBA的Excel文件。使用恒定路径位置时,我的代码可以正常工作。但是,如果我使用文本框中的值(用户将在其中选择文件的位置),则会出现错误。
这是我的代码:
Dim wb As Workbook
Dim File1 As String
Set wb = Workbooks.Add(xlWBATWorksheet)
File1 = txtBox.Text
With wb.ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;File1" _
, Destination:=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 = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Rows("2:2").Select
Selection.Delete Shift:=xlUp
File1是文件的位置。可以根据txt文件的位置进行更改。如果将其更改为示例“ C:\ Users \ sample.txt”,则可以正常工作。我的代码有什么问题吗?
此外,如何使用文本框中选择的文件而不是对其进行硬编码来更改 .Name 的值?
谢谢。
答案 0 :(得分:0)
尝试更改此行:
"TEXT;File1" _
到
"TEXT;" & File1 _