2017-01-04 17 views
0

Мне нужно сгенерировать числа в столбце F на основе иерархии (col B: D). Ниже приведен экзамен excel, а также результаты/ценности, которые я должен получить. enter image description hereНастроить номера в дерево MultiLevel

Я знаю только, как отображать значения для Level1. Вот мой код:

ws_c = ws1.Cells(ws1.Rows.Count, "D").End(xlUp).Row 
Dim Lev1 As Long, Lev2 As Long, Lev3 As Long 
Lev1 = 1 
    For i = 3 To ws_c   
     If ws1.Range("B" & i).Value <> "" Then 
      ws1.Range("F" & i).Value = Lev1 
      Lev1 = Lev1 + 1 
     End If 
    Next 
+0

первый, полностью квалифицировать ваш 'ws_c' путем изменения в' ws_c = ws1.Cells (ws1.Rows.Count, "D") .End (xlUp) .Row', в следующей строке правильно определите свои переменные, это должно быть 'Dim Lev1 As Long, Lev2 As Long, Lev3 As Long' –

+0

Я скорректировал вышеуказанный код, как вы написали ... – 4est

ответ

1

, наконец, я сделал это:

For i = 3 To ws_c 
    '**************************************************************** L1 
    If ws1.Range("B" & i).Value <> "" Then 
     ws1.Range("F" & i).Value = Lev1 
     Lev1 = Lev1 + 1 
     Lev2 = 100 
    End If 
    '**************************************************************** L1.1 
    If ws1.Range("C" & i).Value <> "" Then 
     ws1.Range("F" & i).Value = Lev2 + Lev1 - 1 
     Lev2 = Lev2 + 100    
     Lev3 = 10000 
    End If 
    '**************************************************************** L1.1.1 
    If ws1.Range("D" & i).Value <> "" Then 
     ws1.Range("F" & i).Value = Lev3 + Lev1 - 1 + Lev2 - 100 
     Lev3 = Lev3 + 10000 
    End If 
Next