对于没有在里面运行的循环If语句Excel VBA

时间:2014-04-06 19:27:23

标签: excel vba excel-vba

我正在编写代码,以便在每个月的第一天更新库存电子表格。我对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

2 个答案:

答案 0 :(得分:0)

最简单的方法可能就是将条件改为:

If Day(Date) = 1 Then

现在,我在Mac上写这个,但我认为你会明白这个想法(如果有些细节错了就更正)。

答案 1 :(得分:0)

尝试使用此行工作表("每月办公室库存")。范​​围(" B14:W14")。值=工作表("当前办公室库存" ).Range(" A2:V2")。而不是你的循环

@simoco

https://stackoverflow.com/users/3067523/simoco