我的代码出了问题 - 我需要多次导入数据,但我需要先将数据正确编辑成分隔的列。
基本上,当我进入它时,程序可以执行列文本一次。但之后,它无法转换,即使这些文本文件的格式都相同。
示例数据 - 如您所见,它们具有分隔符(=和,)
"7",="AR",="",="",="720325438",="491.45",="0.00",="0.00",="0.00",="0.00"
"7",="AR",="",="",="720344843",="40.00",="0.00",="0.00",="0.00",="0.00"
代码:
Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
For intCurrentfileNumber = 1 To intNumOfFiles
strCurrentFolderName = varFileArray(intCurrentfileNumber, 0)
strCurrentFileName = varFileArray(intCurrentfileNumber, 1)
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.Workbooks.Open strCurrentFolderName & "\" & strCurrentFileName
Set xlSheet = xlApp.Worksheets(1)
xlSheet.("A1", Range("A" & Rows.Count).End(xlUp)).TextToColumns _
Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=False, _
Semicolon:=False, _
Comma:=True, _
Space:=False, _
Other:=True, _
OtherChar:="=", _
TrailingMinusNumbers:=True
ActiveWorkbook.Close (True)
xlApp.Quit
Set xlApp = Nothing
Set xlSheet = Nothing
DoCmd.TransferText acImportDelim, "Import Specification", "Staging", strCurrentFolderName & "\" & strCurrentFileName, True
Next intCurrentFileNumber
答案 0 :(得分:0)
好吧,我不确定我的错误在哪里 - 我认为错误就在这里 - 实际上,在关闭并重新打开Access后,它开始给我一个错误而不让我运行它。
xlSheet.("A1", Range("A" & Rows.Count).End(xlUp)).TextToColumns _
@Andy G - 感谢您关于不关闭/重新打开Excel App的建议 - 这也可能是其中的一部分。然而,这更像是一种“贫民窟”的运行方式 - 但似乎运行一切都很好。它会打开所有导入文本,相应地调整textToColumns,并成功导入它们。
如果有人有更干净的方式,请随时加入。谢谢!
xlSheet.Columns("A:A").Select
Selection.TextToColumns , _
Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=False, _
Semicolon:=False, _
Comma:=True, _
Space:=False, _
Other:=True, _
OtherChar:="=", _
TrailingMinusNumbers:=True