使文本到列范围动态


0

我想在我的宏中使文本到列范围动态。但是,如果我尝试将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

我认为会有一个简单的解决方案,但我搜索它并找不到任何解决方案来解决它。

有人可以帮忙解决这个问题吗?

Answers:


2

您没有指定分隔符,因此即使您的第一个代码失败也是如此。我已将逗号选项设置为true以使代码运行。您可能想要使用不同的分隔符。

您可以将任何范围分配给MyRange,只要它适用于text to columns操作,即仅适用于一列和适合您已设置的模式的数据,即每行中只有两个元素。然后不要用户Selection.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

谢谢Teylyn,

我终于想通了。我需要将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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.