2016-07-22 19 views
0

我想獲得一個單元格拆分基於從公式返回的值。 它不會讓我上傳一張照片,所以我會盡我所能解釋。如何拆分更多的活動單元格

以下是我的代碼分裂細胞:

Sub splitText() 
Dim splitVals As Variant, totalVals As Long, I As Integer 
splitVals = Split(ActiveCell.Value, " ") 
totalVals = UBound(splitVals) 
range(Cells(ActiveCell.Row, ActiveCell.Column + 1), Cells(ActiveCell.Row,ActiveCell.Column + 1 + totalVals)).Value = splitVals 
End Sub 

我想知道是否有讓我的程序設定,使其分裂的所有列d細胞的一種方式,而不是隻活動細胞。

+0

[this](http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)可能會幫助你 – litelite

+1

看看「For Loops vba」或「做循環vba「或」通過行vba循環「。 Google會有很多例子。 –

回答

0

這裏,試試這個:

Sub splitText() 

    Dim r As Range 
    Dim splitVals As Variant, totalVals As Long, I As Integer 

    For Each r In Range("D:D").Cells 
     If r.Value <> "" Then 
      splitVals = Split(r.Value, " ") 
      totalVals = UBound(splitVals) 
      Range(Cells(r.Row, r.Column + 1), Cells(r.Row, r.Column + 1 + totalVals)).Value = splitVals 
     End If 
    Next r 


    End Sub 
+0

非常感謝你!這是完全有道理的,但現在它不返回任何東西......我不知道它是否有所作爲,但我的D單元格中的數據是由空格分隔的四位數字。 – kmja2500

0
Sub splitText() 
    Dim splitVals As Variant, totalVals As Long 
    Dim N as single 
    splitVals = Split(ActiveCell.Value, " ") 
    totalVals = UBound(splitVals) 
    For N = 0 to totalVals 
     ActiveCell.offset(0, 1 + N) = splitVals(N) 
     ActiveCell.offset(1, 0).select 
    Next N 
End Sub 

此子是隻爲單個細胞,這是你的活躍細胞分裂的文本。 如果您需要分割多個單元格,則需要爲每個單元格循環此功能。

+0

好的謝謝!這是有道理的......但它仍然只是分裂活躍細胞。我已經嘗試修改這段代碼,讓它從第5行開始將D行拆分成D列,但似乎無法得到它。 – kmja2500

+0

是的,僅適用於activecell,因爲我們使用ActiveCell,添加新代碼以將活動單元移動到下一行 –

+0

,但我的建議是使用Cells(),而不是使用ActiveCell,繼續 –

相關問題