2013-09-16 27 views
-1

我對VBA非常陌生,無法創建用於移動數字塊的快速宏。在Excel中移動一個Do Until功能跨列vba

我想創建的是,當按下一個按鈕:

移動的內容(我,5)E63

從(我16)下降到F67細胞:F110

取決於行10是否包含「低」或「高」,將三個單元格從集合 N106:N109移動到單元格(i12:i14)[其中i是列引用)。

的代碼範圍的部分是什麼做到這一點,他們的工作很好,我遇到的問題是我Do.Until行與參考柱(我)

有誰知道這是怎麼工作的?由於

UPDATE 所以感謝亞洲時報Siddharth的幫助下,我已經能夠解決所有,但一個位,這是那裏的範圍是從功能的串線。我沒有使用.Formula這裏的原因,但粘貼相反,否則所有單元格A12:A14到Z12:Z14將等於相同的東西,這是不正確的。其他部分無關緊要。這些行上出現13型不匹配錯誤。

Sub Columntest() 
Dim i As Integer 
    i = 5 
    Do Until Cells(5, i).Value = "" 
     If Cells(10, i).Value = "Low" Then 
        Range("E63").Formula = Cells(5, i) 
        Range("F67:F110").Formula = Cells(16, i) 
        Range("O106:O108").Copy 
        Range("=" & Columns(i) & "12").PasteSpecial Paste:=xlPasteValues 
     End If 
     If Cells(10, i).Value = "High" Then 
        Range("E63").Formula = Cells(5, i) 
        Range("F67:F110").Formula = Cells(16, i) 
        Range("N106:N108").Copy 
        Range(Columns(i) & "12").PasteSpecial Paste:=xlPasteValues 
     End If 
    i = i + 1 
    Loop 

結束子

+3

鳥類觀點:你不應該增加'i',即'i = i + 1'嗎?還有'Do'的'Next'?爲什麼在'細胞'之前的DOT? –

+0

現在我可以看到這麼多的錯誤:)爲什麼'列'而不是'列'? 'Range(「=」&Column(i)&「10」)是一個範圍是什麼......你可以附上一個樣本,並顯示你到底想達到什麼目的? –

回答

0

的類型不匹配是因爲你正在試圖連接一列對象和範圍基準的字符串:

Range("=" & Columns(i) & "12").PasteSpecial Paste:=xlPasteValues 

嘗試使用此來代替:

Cells(12, i).PasteSpecial Paste:=xlPasteValues