=2ThenApplicatio"/> =2ThenApplicatio">

Maison  >  Article  >  tutoriels informatiques  >  Récupère la valeur renvoyée par InputBox dans VBA

Récupère la valeur renvoyée par InputBox dans VBA

PHPz
PHPzavant
2024-01-22 20:45:05605parcourir

Récupère la valeur renvoyée par InputBox dans VBA

Valeur de retour d'Inputbox dans VBA

Sous-marin privé iCheckGs()

'--------Vérifier le mot de passe

Dim iPsw$, i&, tmp

iPsw = " " '"300029"

Faire

tmp = Boîte d'entrée ( _

"Rappel chaleureux du système :" & Chr(10) & Chr(10) & _

"Utilisateurs non professionnels, veuillez cliquer sur {Annuler} pour quitter !" & Chr(10) & Chr(10) & _

"Veuillez entrer votre mot de passe (vous avez " & 3 - i & " chances !)")

Si Len(tmp) = 0 alors quittez Sub

Si CStr(tmp) = iPsw Alors quittez Do

Si je >= 2 Alors

Application.DisplayAlerts = False

ThisWorkbook.Fermer Faux

Application.DisplayAlerts = True

Fin si

i = i + 1

Boucle

'Voici le code une fois le mot de passe transmis

……

……

Comment renvoyer plusieurs valeurs dans une fonction personnalisée en VB

Sous-bouton 1_Click()

Diminuer le périmètre en double, la surface en double, le rayon en double

Périmètre = 0

Zone = 0

Rayon = 15#

Appel SubN (Périmètre, Surface, Rayon)

MsgBox Périmètre & " " & Zone

Fin du sous-marin

Sub SubN (paramètre de périmètre ByRef, paramètre de zone ByRef, paramètre de rayon ByVal)

Si paramètre de rayon

Paramètre périmètre = 0

Paramètre de zone = 0

Autre

Paramètre périmètre = 2 * 3,14 * Paramètre rayon

Paramètre de zone = 3,14 * Paramètre de rayon * Paramètre de rayon

Fin si

End Sub Le code ci-dessus est débogué dans le VBA d'Excel et peut répondre aux exigences.

valeur de retour vba

Tout d’abord, vos ingN et ingSN sont des nombres entiers. Si la cellule est une décimale, il peut y avoir un problème.

Aussi

Pour chaque rng2 dans rng1.Cells

Si rng2.Value ""Alors

rng2.Select

ingTC = Val(ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value)

Fin si

Prochain rng2

Le résultat ingTC doit être 0

Boucle jusqu'à la fin où rng2.Value est la cellule inférieure de la zone

Val(ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value)

Les deux lignes en dessous de la zone doivent être vides !

Pour chaque rng3 dans rng0.Cells

Si rng3.Value = "" Alors

shtV.Select

rng3.Select

ingN = Val(ActiveCell.Offset(-1, 0).Value)

Fin si

Suivant rng3

Cela dépend de la situation de rng0.Cells

Ce ne sont que des données, elles n'entrent pas du tout IF,

S'il y a plus de 2 cellules vides consécutives, ingN doit être 0.

Selon les données que vous avez téléchargées, l'opération doit être 0

Je ne comprends pas ce que vous voulez faire, donc je ne sais pas comment le changer.

Aussi

Si rng2.Value "" Alors

rng2.Select

ingTC = Val(ActiveCell.Offset(1, 0).Value + ActiveCell.Offset(2, 0).Value)

Fin si

Écrit comme

Si rng2.Value "" Alors

ingTC = Val(rng2.Offset(1, 0).Value + rng2.Offset(2, 0).Value)

Fin si

L'efficacité sera beaucoup plus élevée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer