2014-04-06 182 views
0

我正在編寫一個代碼,以在每個月的第一天更新清單電子表格。我對VBA知之甚少,但我理解編程的基本知識。請原諒我糟糕的代碼。對於內部不運行的循環如果語句Excel VBA

問題是,在初始If語句檢查後,如果它爲true,它將只運行直接在它下面的行(添加一個新行),並且在編輯數據後不執行For Loops。

Sub Auto_Open() 
Dim stock(21) 



If Date - Day(Date) + 1 = Date Then 

Range("'Monthly Office Inventory'!A2").EntireRow.Insert 

For i = 0 To 21 
stock(i) = Range("Current Office Inventory'!A2").Offset(0, i).value 
Next i 

For x = 0 To 21 
Range("'Monthly Office Inventory'!B14").Offset(0, x).value = stock(x) 
Next x 

End If 

End Sub 
+0

'不執行對於Loops' - 你爲什麼這麼認爲?代碼適用於我。此外,我建議你使用'工作表(「當前辦公室清單」)。範圍(「A2」)...'而不是 - 這是更自然的方式 –

+0

它增加了新行,但所有單元格保持空白。這是工作之前,我添加了新線 – Heroz

+0

你應該檢查你是否真的有任何數據在當前辦公室庫存!A2:V2' –

回答

0

可能做到這一點,最簡單的方式將被改變,你條件:

If Day(Date) = 1 Then

現在,我在Mac上書面方式,但我想你會明白我的意思(如果某些細節錯誤,請更正它)。

+0

我正在使用'如果日期 - 日(日期)+ 1 =日期 - 日(日期)+ 1然後'測試 – Heroz

+0

它只是打印到錯誤的位置。問題解決了。我的錯。謝謝 – Heroz

+0

然後,我會嘗試使用'If Day(Date)= 6 Then'(今天是6)之類的東西,因爲添加一個Date和一個整數('Day(Date)+ 1')可能不起作用。有一個函數'DateAdd()'http://msdn.microsoft.com/en-us/library/hcxe65wz(v=vs.90).aspx所以這可能意味着它不起作用。 –