2015-05-12 501 views
-2

我是編程新手,需要幫助。如何在Excel中使用VBA每24行插入一行?

我有一個Excel表格,將有8760行(一年中的每個小時),爲了區分每個新的一天,我需要插入一個空的行,每24行。我知道我必須使用for循環,但不知道使用什麼VBA語法等等。

這是我到目前爲止,我只是不知道放在哪裏了「每24行條件」:

For i = 1 to i = 8760 
Worksheets("Sheet1").Cells(i, "A").Select 
ActiveCell.EntireRow.Insert 
Next 

在此先感謝

+0

歡迎來到SO!閱讀[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)可以幫助你儘快得到答案。請記住,這不是一個代碼寫作服務,所以發佈你有什麼和我們可以幫助你解決它。如果您不知道從哪裏開始,請嘗試使用宏錄像機。 – FreeMan

+0

@FreeMan我懷疑宏記錄器會幫助這個。它可能會告訴你如何插入整行,但其餘部分需要一些編程知識。 – RubberDuck

+1

可能不會顯示如何循環,但這是一個機會,以A)顯示一些主動權,和B)學會使用宏記錄器這是一個很好的方法來開始學習,即使它沒有寫出最好的質量代碼。 – FreeMan

回答

2

只是遍歷的單元格區域並使用VBA's mod operator來檢查是否應該插入一行。您也可以閱讀Modulo operator on wikipedia

Public Sub InsertRowOnceEvery24Rows() 

    Dim ws As Worksheet 
    Set ws = ThisWorkbook.ActiveSheet 'adjust this to get the sheet you need 

    Dim rng As Range 
    Set rng = ws.Range("A1:A50") 'adjust this to whatever range of cells you need 

    Dim i As Integer 

    i = 1 
    Dim cell As Range 
    For Each cell In rng 
     If i Mod 24 = 0 Then 
      cell.EntireRow.Insert xlShiftDown 
     End If 

     i = i + 1 
    Next 

End Sub 
+1

非常感謝,它工作。 我真的很感謝你的幫助!有一天,我希望我能更加流利地編程。 – Melyssa

+0

不應該在反向循環中插入行;) –

+0

這也是我的第一個想法@SiddharthRout,但後來我意識到對單元格的引用不會通過在它們之間插入行來更改。 =) – RubberDuck

相關問題