Привет! Есть задача: нужно упорядочить столбцы в порядке, который указан в ячейке листа Excel. Но при передаче значения в Table.ReorderColumns переменная воспринимается как одно строчное значение. Танцы с бубном на костылях ничего не дали, преобразование внутри ReorderColumns превращает строковое значение в функциональное и всё равно его не кушает.
Sub Макрос8()
Dim arr1 As Variant, arr2 As Variant, arr3 As Variant, arr4 As Variant
Dim n As Long, m As Long, i As Long
Set tabb = Worksheets("Лист1 (2)").ListObjects("Таблица18")
arr1 = tabb.Range
arr2 = Split(Range("Q1"), ", ")
ReDim arr3(LBound(arr1) To UBound(arr1) - 1, LBound(arr1, 2) To UBound(arr1, 2))
ReDim arr4(1 To 1, LBound(arr1, 2) To UBound(arr1, 2))
For n = LBound(arr2) To UBound(arr2)
For m = LBound(arr1, 2) To UBound(arr1, 2)
If arr2(n) = arr1(1, m) Then
arr4(1, n + 1) = arr1(1, m)
arr1(1, m) = ""
For i = LBound(arr3) To UBound(arr3)
arr3(i, n + 1) = arr1(i + 1, m)
Next i
End If
Next m
Next n
For m = LBound(arr1, 2) To UBound(arr1, 2)
If Not arr1(1, m) = "" Then
arr4(1, n + 1) = arr1(1, m)
For i = LBound(arr3) To UBound(arr3)
arr3(i, n + 1) = arr1(i + 1, m)
Next i
n = n + 1
End If
Next m
tabb.DataBodyRange = arr3
tabb.HeaderRowRange = arr4
End Sub
let
colStructИсточник = Excel.CurrentWorkbook(){[Name="stuct"]}[Content],
#"colStructЗамененное значение" = Table.ReplaceValue(colStructИсточник," ","",Replacer.ReplaceText,{"Column1"}),
#"colStructРазделить столбец по разделителю" = Table.ExpandListColumn(Table.TransformColumns(#"colStructЗамененное значение", {{"Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv)}}), "Column1"),
Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
#"Измененный тип" = Table.TransformColumnTypes(Источник,{{"letters", type text}, {"A1", type any}, {"B4", type any}, {"C3", type any}, {"A2", type any}, {"A4", type any}, {"C1", type any}, {"C2", type any}, {"B3", type any}, {"A3", type any}, {"C4", type any}, {"B1", type any}, {"B2", type any}, {"lVal", type any}, {"avgVal", type any}}),
#"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",#"colStructРазделить столбец по разделителю"[Column1])
in
#"Другие удаленные столбцы"
Круто ребята 3 макроса есть, а надо запросы писать, но ладно я почти макрорекордером обошелся. Было бы побольше таких авторов, уже бы половина пользователей форума макросы умела писать