2015-11-12 49 views
1

在我的電子表格的G列中,我想從另一列中提取數據。但不是每一行,只有每三行。我怎樣才能寫一個For Until循環,每隔三行,我該如何結束循環?如何循環此代碼,直到達到第x行?

這裏是我需要循環每三排在G列的代碼,直到行350

ActiveCell.FormulaR1C1 = "=RC[-1]" 
Range("G10").Select 
ActiveCell.FormulaR1C1 = "=RC[-1]" 
Range("G13").Select 
ActiveCell.FormulaR1C1 = "=RC[-1]" 
Range("G16").Select 
ActiveCell.FormulaR1C1 = "=RC[-1]" 

而且,任何人都可以推薦的在線資源學習VBA宏-ING在Excel中?

+0

可以用「第3步」環路你的,如果你POSTO你的代碼,我們可以幫助你 – Fabrizio

+0

是否有F欄標題?循環在哪一行開始? – agustin

回答

1

爲了給你一個起點,嘗試

Sub Test() 
Dim MyRange As Range, Idx As Integer 

    Set MyRange = [G10]   ' define a range object 
    Idx = 1      ' row index 

    Do While True    ' see note 
     MyRange(Idx, 1).FormulaR1C1 = "=RC[-1]" 
     Idx = Idx + 3   ' advance by 3 rows 
    Loop 
End Sub 

在這裏你正在使用Range對象而不是選擇和激活單元格。

重要:由更適合的終止條件更換Do While True ......這樣你要創建一個無限循環,這是很好的測試在調試器而不是「無人值守」的執行。

適合的終止條件可能是

Do While MyRange(Idx, 1) <> ""  ' as long as G is not empty 
Do While MyRange(Idx, 0) <> ""  ' as long as F is not empty 
DO While Idx < 200     ' until a certain position is reached 
+0

這工作完全謝謝你。 :)最後一個問題,是有辦法,我可以使用同樣的循環做別的事情: 我有一個字符串和intergers列。 ex AB 14:25 有沒有一種方法可以刪除字符串並將14:25分割爲列? – zemken12

+0

當然...這是一個非常通用的概念,循環通過exel表單(並且因此應該成爲麪包和黃油)...定義範圍/行索引/終止condotion ...然後在循環內部執行任何操作要完成......例如將時間分成分秒和秒/刪除或插入...等。 – MikeD

0

可以使用Step 3像下面

Sub loopThroughColumn() 

    Dim i As Integer 
    Dim LastRow As Integer 

    LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "G").End(xlUp).Row 

    For i = 1 To LastRow Step 3 
     Range("G" & i).FormulaR1C1 = "=RC[-1]" 
     MsgBox Range("G" & i).Value 
    Next 

End Sub 

所示,你可以找到在線資源,學習VBA here