2017-05-27 3 views
1

... um Ihre Arbeitsmappe jede 100. Iteration zu speichern?Ist es Wenn x/100 = Int (x/100) Dann ActiveWorkbook.Save ODER wenn x/100 = Int (x) Dann ActiveWorkbook.save?

Es ist nur eine Programmiersprache Frage.

Ist es Wenn x/100 = Int (x/100) Dann ActiveWorkbook.Save oder wenn x/100 = Int (x) Dann ActiveWorkbook.save, um Ihre Arbeitsmappe jede 100. Iteration zu speichern?

Die Struktur des Codes ist wie folgt aus:

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

Frage ist, es ist wenn x/100 = Int (x) Dann ActiveWorkbook.Save oder sollte es sein geschrieben als wenn x/100 = Int (x/100)dann ActiceWorkbook.Save das zu tun?

= Int (x/100) macht für mich mehr Sinn (so sieht es Excel aus), wenn man fragt, ob die Berechnung eine ganze Zahl ist, aber VBA könnte sie anders lesen und Variablen anders darstellen und somit = Int (x) in diesem Anweisungskontext korrigieren.

Ich denke, wenn x/100 = int (x/100) wäre richtig? aber etwas anderes sagt zu mir, "nein, das ist die Art und Weise, wie vba entworfen wird. Es liest die Variablen nicht so," (irgendwie.) Irgendwelche Hilfe bei dieser Frage?

Sie können meine Kenntnisse der VBA-Syntax (wenn das eine Syntaxfrage ist) sagen, ist schlecht.

** Aha! Stopp drücken, ich denke = Int (x) wäre richtig, da es als Funktion von x, f (x) gelesen wird, wie in/mit Mathematik, und nicht als Variable oder Teil einer Programmierschleife.

Sie können mir sagen gelangweilt, aber alle Vorschläge/Hilfe mit dieser Frage wäre sehr willkommen!

+1

'Wenn x/100 = Int (x/100) Dann würde ActiveWorkbook.Save' funktionieren, aber' Wenn x Mod 100 = 0 Dann ... 'wäre die bevorzugte Art, es auszudrücken. – YowE3K

+0

Hat Excel keine automatische Speicherung? Ich bin mir ziemlich sicher, dass es immer Dokumente wiederherstellt. – stevenvanc

+0

Danke Jungs. Schätzen Sie die Feedback & Hilfe lädt! –

Antwort

4
If x Mod 100 = 0 Then ActiveWorkbook.Save 

Mod teilt zwei Zahlen und gibt nur den Rest. - Mod Operator on MSDN

+0

Danke für die Erklärung & korrekte Linie! Vielen Dank ! –

2

Die erste funktioniert:

Int(x/100) = x/100 

Ie:

x Mod 100 = 0 

jedoch die zweite:

Int(x/100) = Int(x) 

würde nur für x = 0 arbeiten, sonst LHS ist immer 100 mal kleiner als RHS.

Als Randbemerkung: Int(x/100) ist nicht Wenn es eine ganze Zahl „zu fragen“, seine es in eine ganze Zahl drehen.()

+0

Danke !! Genau das brauchte/wollte ich wissen !! Vielen vielen Dank !! –

+0

Danke Nick A, Es war wirklich hilfreich, ich schätze es sehr. –

Verwandte Themen