Si alors Sinon Excel VBA - “Fin Si” nécessaire?
donc je m écrire une fonction en vba Excel du genre:
function ...
if ... then ... else
for i... to ...
equations
...
next i
*
end function
Maintenant, j'ai remarqué que la fonction semble fonctionner très bien, cependant je me demandais si je ne devrais pas être à l'aide d'un "end if" à la position de (*) dans le code? Si je le fais, je reçois un msg d'erreur indiquant il n'y a pas de si les SI la "fin si" bloc, si!? Donc, en général, n'est-il pas Nécessaire pour une "fin de si" si alors sinon des constructions ? Merci à l'avance!
/edit: 'si ... alors ... sinon" est en une seule ligne. Cependant, le bloc else ne contenir plusieurs lignes et, en particulier, une boucle...
- Si votre Cas est en une seule ligne(Si, Alors, Sinon en une seule ligne), vous n'avez pas besoin d'une Fin Si
- Copiez le code pour qu'on puisse voir mieux. Vous pouvez faire 1 ligne si consolidés. Si c'est sur une seule ligne, il n'a pas besoin de fin si - mais le cycle ne fait pas partie du si. En bref, le cycle sera exécuté de toute façon. Si c'est sur plusieurs lignes, alors il a besoin d'une fin si.
- Tout cela est décrit en détail dans l'Aide de VBA. Avez-vous lu?
Vous devez vous connecter pour publier un commentaire.
Si vous mettez SI ALORS SINON dans une ligne, puis le si la condition se termine sur cette ligne et la ligne suivante sera exécutée n'importe quoi.
Par exemple,
ce cas
si la valeur est true, x 1 et y 1
si la valeur est false, x 2 et y sera 1
ce cas,
si la valeur est true, x 1 et y sera vide
si la valeur est false, x 2 et y sera 1
En outre, si vous ne
x sera toujours 2 pas de question vrai ou faux
Si vous ne voulez pas de FIN SI, mais encore envie if, ELSE if, ELSE, il suffit d'écrire tout en ligne.
Utilisation de ":" pour plusieurs actions.
Oui, vous avez besoin de la Fin de l'instruction if ou vous obtiendrez une erreur.
C'est seulement lorsque votre Si la déclaration est un one-liner que vous n'en avez pas besoin, comme:
mais:
ne fonctionne pas sauf si il est fermé avec la Fin Si comme ceci:
Ne pouvez pas voir exactement comment vous structuré votre fonction, mais si elle fonctionne sans Fin Si, alors je suppose que c'est valable un one-liner Si l'instruction ou vous avez on Error Resume Next quelque part dans votre code.