У меня есть текущий макрос Excel ниже, который отлично работает для один набор данных:
Sub test_macro()
Rows("1:1").Select
Selection.Delete Shift:=xlUp
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1)), _
TrailingMinusNumbers:=True
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Cut Destination:=Range("B1:K1")
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
End Sub
Цель состоит в том, чтобы взять набор данных, который выглядит следующим образом: ![enter image description here](https://i.stack.imgur.com/dMoVe.png)
И преобразуйте это в следующее:
| COL1 | COL2 | COL3 | COL4 | COL5 | COL6 | COL7 | COL8 | COL9 | COL10 |
|------|------|------|------|------|------|------|------|------|-------|
| Foo1 | Foo2 | Foo3 | Foo4 | Foo5 | Foo6 | Foo7 | Foo8 | Foo9 | Foo10 |
И это прекрасно работает как есть.Однако количество столбцов у меня может измениться.Иногда это только 2 столбца, иногда до 250 столбцов.Поэтому меня беспокоит часть моего макроса Range(Selection, Selection.End(xlToRight)).Select
Selection.Cut Destination:=Range("B1:K1")
, так как он указывает диапазон вставки B1:K1
.
Следовательно, как я могу сделать этот диапазон назначения универсальным?(Я просто перемещаюсь по строке 1 на 1 вправо для каждой заполненной ячейки в строке 1).