簡體   English   中英

CSV文本到VBA中的列

[英]CSV Text to columns in VBA

我試圖分裂csv文件,其中分離器是管行字符的元素(表): |

我通過excel使用了“文本到列”功能,該函數起作用了,然后我記錄了該宏並使用了它,但沒有成功。

數據未在列中對齊(例如:日期不在日期列中),就好像選項“將連續定界符視為一個”處於活動狀態一樣,但是代碼中的“ ConsecutiveDelimiter”設置為False。

這是我使用的代碼:

Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
    :="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
    1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12 _
    , 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), _
    Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array( _
    25, 1), Array(26, 1), Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), _
    Array(32, 1), Array(33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array( _
    38, 1), Array(39, 1), Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1)), _
    TrailingMinusNumbers:=True

提前致謝

編輯

下面是一個行樣本:

  • 第一個包含欄位欄位
  • 第二個是輸出(它只顯示一個數據,然后顯示所有空白單元格)
  • 第三個是包含所有數據的行(在csv中)
  • 第四個顯示應如何顯示數據(將Excel的文本顯示為列)

XXX代碼說明| HRAFVVH |最高點|地區| jeis代碼|驗證

凌空抽射

排球,足球|| GFV_4589 | N / A || 05

排球,足球“空白單元格” GFV_4589 N / A“空白單元格” 05

我認為問題不是上面的代碼,而是csv文件中數據的副本。 實際上,將數據復制並粘貼到另一個excel文件中,然后啟動“文本到列”宏。 要復制並粘貼,請使用以下代碼:

Workbooks(n_o).Worksheets("CSV").Activate
Cells.Select
Selection.Copy
Workbooks(thisworkb).Worksheets("CSV_NEW").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
Workbooks(n_o).Close

實際上,在宏粘貼數據之后,如果我通過excel(手動)將“文本轉換為列”,結果也不正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM