2016-08-24 29 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文件中,这是我的问题 –