2016-08-24 5 views
0

[введите описание изображения здесь] [1] У меня есть формат данных CSV Hierarchy (до 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/BJ2Qg.png]

[Это то, что мне нужно для стержня | http://i.stack.imgur.com/7Q6jq.png]

+0

Вы пытаетесь прочитать данные из файла CSV и выполнять TextToColumns с помощью VBA? –

+0

проблема с этим заключается в том, что я теряю одну ячейку. это выглядит как 'Компоненты \t \t \t \t \t C \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

Я не могу сделать i 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 Назначение: = Range (" A1 "), DataType: = xlDelimited, TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = False, Tab: = False, точка с запятой: = False, Comma: = True, Space: = False, Other: = False, FieldInfo: = Array (Array (1, 1), Array (2, 1), Array (3, 1), Array (4, 1), Array (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-файле это была моя проблема –

 Смежные вопросы

  • Нет связанных вопросов^_^