2010-11-02 27 views
0

在以下代碼中,範圍(C16:I16)只會複製該行數據。我需要它移動到它下面的下一行,因爲它將是第二天。並繼續這樣做,直到每個月結束。我需要添加什麼才能完成此任務?謝謝。移動到範圍中的下一行數據

Sub test() 

Workbooks("MAY10-Key Indicator Daily Reportcopy.xls").Sheets("Input").Activate 
Set c = Range("B15:B45") 
For Each cell In c 
    If cell.Value = Range("I5").Value Then 
     Workbooks("McKinney Daily Census Template OCT 10 (11).xls").Sheets("McKinney").Range("C16:I16").Copy 
     cell.Offset(0, 37).PasteSpecial 
End If 
    Next 
Application.CutCopyMode = False 
End Sub 
+1

它很難理解你正在嘗試做什麼,但如果你想根據每月的某一天做一些不同的事情,那麼你需要引用當前的系統日期。 – Patrick 2010-11-02 18:02:50

+0

@帕特里克。有兩個工作簿。 WB1在A欄中列出了11月份的日期。 WB2也有11月份的日期,但有C16:I45的數據(每天11月份)。範圍(I5)是具有= today()的單元格...所以今天是11/02/10,而數據行是C16:I16。明天將是11/03/10,我需要範圍(C16:I16)下降到(C17:I17),並在整個月繼續。我希望這有幫助。 – Edmond 2010-11-02 18:12:39

回答

0

其中i是天#範圍後添加.Offset(i-1, 0)。除了得到已經填寫的行數,從開始參考使用

Public Function CountRows(ByRef r As Range) As Integer 
    CountRows = r.Worksheet.Range(r, r.End(xlDown)).Rows.Count 
End Function 

下,您還可以使用<range>.Resize(num_rows, num_cols)函數來創建(可變大小)的多個小區的範圍。

+0

我在哪裏可以在上面的代碼中添加公共函數? – Edmond 2010-11-02 19:49:33

+0

在任何模塊中,使其可以從所有工作表中訪問。 – ja72 2010-11-03 15:10:15

+0

@ jalexiou。我添加了.offset和Public函數,但在我的WB2上,日期爲11/01/10,數據的範圍是C15:I15。我需要11/02/10的範圍自動下降到C16:I16,而是它只是複製和粘貼C15:I15 – Edmond 2010-11-03 17:08:26