Я хотел бы сделать диапазон текста к столбцам динамическим в моем макросе. Но если я попытаюсь вставить туда myRange, это не сработает. Я не могу найти какую-либо информацию в Интернете, чтобы сделать текст в столбцы динамическими.

Оригинал (записанный код):

Sub Macro3()
    Selection.TextToColumns Destination:=Selection, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), DecimalSeparator:=".", ThousandsSeparator:=",", _
    TrailingMinusNumbers:=True
End sub

После редактирования (но не могу заставить его работать):

Sub Macro3()

    Dim myRange As Range
    Set myRange = Selection

    Selection.TextToColumns Destination:=myRange, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), DecimalSeparator:=".", ThousandsSeparator:=",", _
    TrailingMinusNumbers:=True

End Sub

Я думаю, что было бы легко решить, но я искал это и не могу найти какие-либо решения, чтобы понять это.

Может кто-нибудь помочь с этой проблемой?

2 ответа2

2

Вы не указываете разделитель, так что даже ваш первый бит кода терпит неудачу. Я установил для запятой значение true, чтобы заставить код работать. Вы можете использовать другой разделитель.

Вы можете назначить любой диапазон MyRange, если он подходит для работы с текстом для столбцов, т.е. только один столбец и данные, которые соответствуют настроенному шаблону, т.е. только два элемента в каждой строке. Тогда не выбирайте пользователя .TextToColumns но myRange.TextToColumns.

Sub Macro4()
Dim myRange As Range
Set myRange = Range("A1:A20") ' you may need to qualify the range with sheet name, etc.

    myRange.TextToColumns Destination:=myRange, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), DecimalSeparator:=".", ThousandsSeparator:=",", _
    TrailingMinusNumbers:=True
End Sub
0

Спасибо Тейлин,

Я наконец понял, сейчас. Мне нужно было изменить selection.textocolumns в myRange.TexttoColumns.

Я не менял запятую, потому что это было только для изменения форматирования данных с США на ЕС.

Мой окончательный код такой: Sub Macro3()

    Dim myRange As Range
    Set myRange = Selection

    myRange.TextToColumns Destination:=myRange, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), DecimalSeparator:=".", ThousandsSeparator:=",", _
    TrailingMinusNumbers:=True

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .