如果值为零或为空,Excel VBA代码将停止
代码运行不准确,公式为: F(单元)=G(单元)-A2仅当F(单元)>0时 当代码运行并在F单元格中找到任何“空白”或“0”值时,代码停止工作,尽管下一个F单元格可能有正值。关键是,如果下一个单元格的值为正值,我们需要代码继续工作 更好地解释的屏幕截图如果值为零或为空,Excel VBA代码将停止,vba,excel,Vba,Excel,代码运行不准确,公式为: F(单元)=G(单元)-A2仅当F(单元)>0时 当代码运行并在F单元格中找到任何“空白”或“0”值时,代码停止工作,尽管下一个F单元格可能有正值。关键是,如果下一个单元格的值为正值,我们需要代码继续工作 更好地解释的屏幕截图 正确的结果应该在屏幕截图下面考虑代码工作。 实际上,当您试图根据F列的值填充G列时,只需要一行代码 在下面的示例代码中,您只需要在主子例程中调用sub-PopulateColumnG 主子程序: Private Sub Button_Click
正确的结果应该在屏幕截图下面考虑代码工作。
实际上,当您试图根据F列的值填充G列时,只需要一行代码 在下面的示例代码中,您只需要在主子例程中调用sub-PopulateColumnG 主子程序:
Private Sub Button_Click()
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
Call PopulateColumnG
'Rest of your code
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Sub PopulateColumnG()
Dim lr As Long
lr = Cells(Rows.Count, 6).End(xlUp).Row
Range("G1:G" & lr).Formula = "=IF(F1>0,F1-$A$2,"""")"
Range("G1:G" & lr).Value = Range("G1:G" & lr).Value
End Sub
填充G列所需的代码:
Private Sub Button_Click()
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
Call PopulateColumnG
'Rest of your code
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Sub PopulateColumnG()
Dim lr As Long
lr = Cells(Rows.Count, 6).End(xlUp).Row
Range("G1:G" & lr).Formula = "=IF(F1>0,F1-$A$2,"""")"
Range("G1:G" & lr).Value = Range("G1:G" & lr).Value
End Sub
你使用&我认为你的意思是&和是字符串连接运算符。和是布尔运算符。您还缺少和
End If
。您有If/Else/If/If
。您需要If/Else/End If/If/End If/If/End If
现在的方式。您的代码是否正确编译,或者如果,您是否省略了最后的结尾?我知道连接,并且使用了,但是&但是我没有得到准确的结果。@BruceWayne这是代码的一部分,是的,它正确编译,但是没有得到准确的结果。我们可以看到您代码的其余部分吗?这看起来有点复杂/过分,好像是=IF(AND(F1>0,F1“”),F1-$a$2,“”)
谢谢你的回答,但是我不确定这正是我要找的,如果你查看发布的代码,你可以看到我在这个按钮中调用了多个sub,并请求编译特定的公式以获得结果,如果没有弄错的话,”.ScreenUpdating=True”是一个模拟集,因为一旦代码完成,它无论如何都会启动。