2016-07-27 26 views
-2

無論如何要結合下面的代碼來包含所需的列,以便他們能夠將文本添加到列或我需要保留原樣嗎?我有多個範圍,包括U2,V2,N2,X2,AB2,& Z2如何通過VBA將多個範圍包含到文本列中?

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 
+0

你怎麼用這個?一旦U2被DoubleQuote分割,V2中就不會有任何東西被DoubleQuote吐出。 – pnuts

回答

0

您可以將幾個範圍是這樣的:

Set rng1 = Range("U2:U2") 
Set rng2 = Range("V2:V2") 
'and so on.. 
Set yourBigNewRange = Union(rng1, rng2, ...) 

你可以用這個新系列的工作方式完全相同你可以使用任何其他範圍。

相關問題