Здравствуйте. Помогите пожалуйста разобраться. Имеется лист с умной таблицей под названием "Таблица1", в ней 10 столбцов с именами "Столбец1" и т.д. Так же имеется код, который обращается к массиву. Вот он:
Мой вопрос состоит в том, как заменить свойства Range на "Таблица1..." и далее грамотно обращаться к нужному столбцу типа "Таблица1[Столбец1]" и т.д. Интуитивно понимаю, что нужно заменить MyArray = .Range(.Cells(1, 1), .Cells(iRow, iColl)).Value на MyArray = .Range("Таблица1").Value, чтобы обозначить массив данных, но как ниже обратиться к нужному столбцу, в моем случае к "Столбец1" и "Столбец3", не догоняю. После слов "перебираем массив", все становится у меня "сложно". Пожалуйста помогите разобрать эту конструкцию.
| Код |
|---|
With Sheets("Sheet2")
iRow = .UsedRange.Row + .UsedRange.Rows.Count - 1: iColl = .UsedRange.Column + .UsedRange.Columns.Count - 1
MyArray = .Range(.Cells(1, 1), .Cells(iRow, iColl)).Value
End With
Set AppWord = CreateObject("Word.Application"): AppWord.Visible = False
'перебираем массив
For I = 2 To iRow
If MyArray(I, 1) = "a" Then
tmpArray = Split(MyArray(I, 3), ";")
For q = 0 To UBound(tmpArray)
tmpSTR = iFolder & tmpArray(q) & ".docx"
If Len(Dir(tmpSTR)) > 0 Then
Set iWord = AppWord.Documents.Open(tmpSTR, ReadOnly:=True)
For J = 4 To iColl
Call ExportWord(MyArray(1, J), MyArray(I, J))
Next J
iWord.SaveAs filename:=BasePath & tmpArray(q) & " - " & MyArray(I, 2) & ".docx", FileFormat:=wdFormatXMLDocument
iWord.Close False: Set iWord = Nothing
End If
'tmpSTR = ""
Next q
'Erase tmpArray
End If
Next I |
Изменено: - 22.08.2019 17:44:39