在VBA中将定界文本转换为CSV

时间:2018-10-17 15:06:02

标签: excel vba excel-vba

我需要转换包含定界符“ |”的文件到使用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”,则可以正常工作。我的代码有什么问题吗?

错误: enter image description here

此外,如何使用文本框中选择的文件而不是对其进行硬编码来更改 .Name 的值?

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试更改此行:

 "TEXT;File1" _

"TEXT;" & File1 _