2012-09-14 65 views
2

我試圖將文本轉換爲使用宏的列,但是我無法做到這一點,我試圖記錄一個宏來實現這一點,但是我正在運行一些問題,因爲文本列VBA功能期望選擇,有沒有辦法我可以dinamically選擇讓我們說範圍A7:A50000?甚至更好A7:lastnonempty細胞?使用VBA在Excel中將文本轉換爲列

感謝,

僅供參考,因爲我必須這樣做將文本轉換成公式

這裏定界符不是重要的是我的代碼

Range("O6").Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.TextToColumns Destination:=Range("O6"), DataType:=xlDelimited, _ 
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ 
    :=Array(1, 1), TrailingMinusNumbers:=True 
+0

你有什麼試過?如果你發佈了你使用的代碼,你應該立即看到如何做到這一點(除非我完全誤解了你的問題)。 – enderland

+0

我已經嘗試過,但它只適用於如果我只有一些選擇,我想使選擇動態(A7:A50000?或甚至更好的A7:lastnonempty細胞?) – user1112251

回答

10

試試這個

Sub Txt2Col() 
    Dim rng As Range 

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

    rng.TextToColumns Destination:=rng, DataType:=xlDelimited, ' rest of your settings 

更新:按鈕點擊事件以在另一張紙上作用

Private Sub CommandButton1_Click() 
    Dim rng As Range 
    Dim sh As Worksheet 

    Set sh = Worksheets("Sheet2") 
    With sh 
     Set rng = .[C7] 
     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 
End Sub 

注意.的(如.Range),他們指的是With語句對象

+0

您好CHRIS,我試過你的解決方案,但我得到了這個錯誤,「Microsoft Excel一次只能轉換一列......」。有任何想法嗎? – user1112251

+0

更新爲佔可能性範圍不列'A' –

+0

這就像一個魅力我工作表(「表」)沒有範圍:),謝謝克里斯 – user1112251

0

如果有人用texttocolumns功能在UFT面臨的問題。請嘗試使用以下功能。

myxl.Workbooks.Open myexcel.xls 
myxl.Application.Visible = false `enter code here` 
set mysheet = myxl.ActiveWorkbook.Worksheets(1) 
Set objRange = myxl.Range("A1").EntireColumn 
Set objRange2 = mysheet.Range("A1") 
objRange.TextToColumns objRange2,1,1, , , , true 

這裏我們使用昏迷(,)作爲分隔符。