Добрый вечер ребят, долгое время немного программировал на php, сейчас снова тяжело выезжаю в vba
Помоги разобраться в коде, нашел на просторах в интернете
Код |
---|
Sub reFormat()
Dim sh As Worksheet 'Лист исходник
Dim shd As Worksheet 'Лист результат
Dim cell As Range
Dim dest As Range
Dim fil(1 To 6) As Variant 'Массив
Set shd = ThisWorkbook.Worksheets("Result") 'Присвоить лист результат
shd.UsedRange.Rows.Delete 'Очистить лист
shd.[a1].Resize(1, 9) = Array("1", "2", "3", "4", "5", "6", "7", "8", "9")
Set dest = shd.[a2]
Set sh = ThisWorkbook.Worksheets("Start")
For Each cell In sh.UsedRange.Columns(1).Cells 'Выбираем первый столбец
If cell.EntireRow.OutlineLevel = 1 Then fil(1) = cell.Value
If cell.EntireRow.OutlineLevel = 2 Then fil(2) = cell.Value
If cell.EntireRow.OutlineLevel = 3 Then fil(3) = cell.Value
If cell.EntireRow.OutlineLevel = 4 Then fil(4) = cell.Value
'If cell.EntireRow.OutlineLevel = 4 Then fil(5) = cell.Value
If cell.EntireRow.OutlineLevel = 4 Then
dest.Resize(1, 9).Value = Array(fil(1), fil(2), fil(3), fil(4), fil(5), cell.Value, cell.Offset(, 1).Value, cell.Offset(, 2).Value, cell.Offset(, 4).Value)
Set dest = dest.Offset(1)
End If
Set cell = cell.Offset(1)
Next
shd.Activate
End Sub |
Не понимаю след строки, для чего в объекте еще массив появляется [a1] и так же зачем [a2]
Код |
---|
shd.[a1].Resize(1, 9) = Array("1", "2", "3", "4", "5", "6", "7", "8", "9")
Set dest = shd.[a2] |
Что находится в Сell.value
Код |
---|
If cell.EntireRow.OutlineLevel = 1 Then fil(1) = cell.Value |
Буду признателен, т к пытаюсь переписать код под свои нужды