...每100次迭代保存一次工作簿?
它只是一个编程语言问题。
是否如果x / 100 = Int(x / 100)那么ActiveWorkbook.Save或者如果x / 100 = Int(x)那么ActiveWorkbook.save每隔100次保存你的工作簿吗?
代码的结构如下:
Sub queryname
for x = 1 to 20000
'lots more code to do something/executute processes
'more code ....
If x / 100 = Int(x) Then ActiveWorkbook.Save
End With
Next x
End Sub
问题是, 如果x / 100 = Int(x)那么是ActiveWorkbook.Save 还是应该写成如果x / 100 = Int(x / 100) 那么ActiceWorkbook.Save 这样做?
= Int(x / 100)对我来说更有意义(因为这就是excel会看到它),因为你问它是否是一个整数,但是VBA可能会以不同的方式读取它并以不同的方式放置变量,因此在这个语句上下文中使得= Int(x)正确。
我认为如果x / 100 = int(x / 100)是正确的吗?但其他东西对我说,"不就是vba的设计方式。它没有那样读取变量," (有点事。)对这个问题有任何帮助吗?
你可以告诉我对VBA语法的知识(如果这是一个语法问题)很差。
**啊哈!停止按下,我认为= Int(x)是正确的,因为它读取它是x,f(x)的函数,如在数学中,而不是作为变量或编程循环的一部分。
你可以告诉我很无聊,但是对这个问题的任何建议/帮助将不胜感激!
答案 0 :(得分:4)
If x Mod 100 = 0 Then ActiveWorkbook.Save
Mod 分割两个数字并仅返回余数。 - Mod Operator on MSDN
答案 1 :(得分:2)
第一个正常工作:
Int(x/100) = x/100
即:
x Mod 100 = 0
然而第二个:
Int(x/100) = Int(x)
仅适用于x = 0
,否则LHS总是比RHS小100倍。
作为旁注:Int(x/100)
不是"询问" 如果是整数,则将其变为整数。 (Int(1.4) = 1
)