2016-08-24 30 views
0

[此處輸入圖像的描述] [1]我有以下格式CSV層次數據(最多12層),我試圖填補它在Excel中,所以我可以在端創建數據的樞轉。多層CSV到過濾的excel

每個文件(1000)是不同的,我一直在試圖將其與宏代碼,但無法消除所有的錯誤。

一是形式給出了創建表,並使用上述細胞上的空白,但因爲它不是由表

如何只用處理這個任何想法月底正確的層,然後宏?

Level 1,Level 2,Level 3,Level 4,Level 5,Level 6,Level 7,Level 8,Level 9,Level 10,Level 11,Level 12 
Test 
,,,,,Components 
,,,,,,DEFAULT LOGIC 
,,,,,,,z04 - z05 
,,,,,,,,z04() 
,,,,,,,,,%PWR_PG_U_BACKLIGHT%() 
Components 
,C 
,,C802 - C842 
,,,C802 
,,,,1 (1) 
,,,,2 (2) 

[這是我得到的|​​

[這就是我需要的支點| http://i.stack.imgur.com/7Q6jq.png]

+0

您是否試圖從CSV文件讀取數據並使用VBA執行TextToColumns? –

+0

這樣做的問題是我淘汰了一個細胞。 它看起來像 '組件\t \t \t \t \tÇ\t \t \t \t \t C802 - C842 \t \t \t \t \t C802 \t \t \t \t 1(1) \t \t \t \t 2(2)' –

+0

我不能讓我t顯示結構,但您可以通過將其轉換爲excel並將文本轉換爲列 –

回答

1

做一個「文本到列」在VBA

row_count = 13 

For i = 1 To row_count 
    strArray = Split(Cells(i, 1).Value, ",") 
    For Count = LBound(strArray) To UBound(strArray) 
     Cells(i, Count + 1).Value = strArray(Count) 
    Next 
Next i 
+1

它與 相同'Selection.TextToColumns Destination:= Range(「A1」),DataType:= xlDelimited,TextQualifier: = xlDoubleQuote,ConsecutiveDelimiter:= False,Tab:= False,Semicolon:= False,Comma:= True,Space:= False,其他:= False,FieldInfo:= Array(Array(1,1),Array(2,1 ),陣列(3,1),陣列(4,1),陣列(5,1)),TrailingMinusNumbers:= TRUE; 問題是,樞轉時不能得到電池A1的值可以說一個水平12層值。 –

+0

你能告訴我你正在尋找的輸出,因爲我無法理解什麼是你想要 –

0

得到它與上述解決方案的工作,但略有變化。 雖然需要一點時間。

ActiveSheet.UsedRange.Select 
    row_count = Selection.Rows.Count 
    col_count = Selection.Columns.Count 


For i = 1 To row_count 
    strArray = Split(Cells(i, 1).Value, ",") 
    For Count = LBound(strArray) To UBound(strArray) 
    If strArray(Count) = "" Then 
     Cells(i, Count + 1).FormulaR1C1 = "=R[-1]C" 
    End If 
    If strArray(Count) <> "" Then 
     Cells(i, Count + 1).Value = strArray(Count) 
    End If 
    Next 
Next i 
+0

但是,這並沒有增加值一樣,這個值低於C802 - C842應該是C802 - C843。這就是我現在試圖做的 –

+0

它不應該增加任何值。 所有的數據從另一個地方進口,已經有 –

+0

是分層的數據,但在CSV文件中,這是我的問題 –