是否x / 100 = Int(x / 100)然后是ActiveWorkbook.Save或者如果x / 100 = Int(x)那么ActiveWorkbook.save?

时间:2017-05-27 18:05:18

标签: excel vba excel-vba

...每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)的函数,如在数学中,而不是作为变量或编程循环的一部分。

你可以告诉我很无聊,但是对这个问题的任何建议/帮助将不胜感激!

2 个答案:

答案 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