web-dev-qa-db-fra.com

VBA en abrégé pour x = x + 1?

Sub btn1_Click()
Static value As Integer
value = value + 1
MsgBox value
End Sub

Je jure que lorsque je suivais un cours VB.net à l'université, il y avait un moyen plus court de dire à une variable de s'ajouter à elle-même. Peut-être que x = +1. J'utilise maintenant Access au lieu de Visual Studio. Quand j'essaye cela dans le VBE il enlève le +. J'ai même enlevé Option Explicit sans changement

En supposant que la réponse sera non, il n'y a aucun moyen de la raccourcir et c'est juste une particularité de VBA

39
greggmcfg

Malheureusement, il n'y a pas de operation-assignment opérateurs dans VBA.

(Addition-mission += et al sont disponibles en VB.Net)

Solution de contournement inutile;

function Inc(ByRef i As Integer)
   i = i + 1  
end function
...
Static value As Integer
inc value
inc value
69
Alex K.

Si vous souhaitez appeler le numéro incrémenté directement dans une fonction, cette solution fonctionne mieux:

Function inc(ByRef data As Integer)
    data = data + 1
    inc = data
End Function

par exemple:

Wb.Worksheets(mySheet).Cells(myRow, inc(myCol))

Si la fonction inc() ne renvoie aucune valeur, la ligne ci-dessus générera une erreur.

6
etfa