Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何通过VBA将多个范围包含到文本到列?_Excel_Vba - Fatal编程技术网

Excel 如何通过VBA将多个范围包含到文本到列?

Excel 如何通过VBA将多个范围包含到文本到列?,excel,vba,Excel,Vba,是否需要组合以下代码以包含所需的列,以便将它们文本转换为列,还是需要保持原样?我有多个范围,包括U2、V2、N2、X2、AB2和Z2 Set sh = Worksheets("Data") With sh Set rng = .[U2] Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp)) rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _

是否需要组合以下代码以包含所需的列,以便将它们文本转换为列,还是需要保持原样?我有多个范围,包括U2、V2、N2、X2、AB2和Z2

Set sh = Worksheets("Data")
With sh
Set rng = .[U2]
Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp))

    rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, _
    FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True

Set rng = .[V2]
Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp))

    rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, _
    FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True

Set rng = .[N2]
Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp))

    rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, _
    FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True

Set rng = .[X2]
Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp))

    rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, _
    FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True

Set rng = .[AB2]
Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp))

    rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, _
    FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True

Set rng = .[Z2]
Set rng = .Range(rng, .Cells(.Rows.Count, rng.Column).End(xlUp))

    rng.TextToColumns Destination:=rng, DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, _
    FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
End With

您可以像这样组合多个范围:

Set rng1 = Range("U2:U2")
Set rng2 = Range("V2:V2")
'and so on..
Set yourBigNewRange = Union(rng1, rng2, ... )
您可以使用与使用任何其他范围完全相同的方式使用此新范围