Byval ist ein Schlüsselwort in Excel VBA, das zum Übergeben von Argumenten an Routinen verwendet wird. In diesem Artikel werden wir ausführlich untersuchen, wie Byval verwendet wird und wie es sich auf die Codeausführung auswirkt.
Byval bedeutet, dass der Wert der Variablen kopiert wird, wenn ein Argument an eine Unterroutine übergeben wird, anstatt einen Verweis darauf zu übergeben. Dies bedeutet, dass Änderungen am Wert innerhalb einer Unterroutine keinen Einfluss auf den Wert der Variablen im Hauptprogramm haben.
Beispiel für die Verwendung von Byval:
Sub ChangeValueByVal(ByVal x As Integer)
x = x + 1
End Sub
Sub Main()
Dim num As Integer
num = 10
ChangeValueByVal num
MsgBox num
End Sub
Beachten Sie, dass sich der Wert der Variablen num nach dem Aufruf der ChangeValueByVal-Unterroutine nicht geändert hat. Dies liegt daran, dass wir das Byval-Schlüsselwort beim Deklarieren einer Unterroutine verwendet haben. Wenn wir das Byval-Schlüsselwort nicht verwenden würden, würde sich auch der Wert der Variablen num ändern, wenn sich der Wert des Arguments x innerhalb einer Unterroutine ändert.
Durch die Verwendung von Byval in Excel VBA können Sie Argumente an Routinen übergeben, sodass sie die Werte von Variablen im Hauptcode nicht beeinflussen. Dies ist äußerst nützlich, wenn wir den Wert einer Variablen verwenden müssen, aber nicht möchten, dass sie sich während der Codeausführung ändert. Denken Sie daran, dass Byval standardmäßig verwendet wird, sodass es nicht explizit angegeben werden muss, wenn Sie die Argumente nicht als Referenz übergeben möchten.
Verwenden von Byval in Excel VBA
Wenn ein Argument als Wert an eine Prozedur übergeben wird, wird der Wert des Arguments in eine temporäre Variable kopiert. Dies bedeutet, dass Änderungen, die an der Argumentkopie vorgenommen werden, keinen Einfluss auf den ursprünglichen Wert des Arguments haben.
Byval kann in den folgenden Situationen nützlich sein:
- Wenn Sie den ursprünglichen Wert eines Arguments beibehalten und verhindern möchten, dass es innerhalb der Prozedur geändert wird.
- Wenn das Arbeiten mit dem Wert eines Arguments keinen Einfluss auf den aufrufenden Code hat.
- Wenn der übergebene Wert wenig Speicherplatz belegt und das Kopieren kein Leistungsproblem verursacht.
Beispiel für die Verwendung von Byval in VBA Excel:
Sub ChangeValue(ByVal num As Integer)num = 10 ' Изменение значения аргументаEnd SubSub Main()Dim value As Integervalue = 5ChangeValue value ' Вызов процедуры с аргументомMsgBox value ' Отображение оригинального значения аргументаEnd Sub
In diesem Beispiel ruft die ChangeValue-Prozedur das Argument mit dem ByVal-Schlüsselwort nach Wert ab. Innerhalb der Prozedur ändert sich der Wert des Arguments in 10, die ursprüngliche value-Variable ändert sich jedoch nicht und bleibt auf 5 festgelegt. Wenn Sie den Wert der Variablen value mithilfe von MsgBox anzeigen, wird der ursprüngliche Wert 5 und nicht der geänderte Wert 10 angezeigt.
Die Verwendung von Byval in Excel VBA kann ein nützliches Werkzeug sein, um die Übergabe und Änderung von Argumentwerten in Prozeduren zu steuern. Dadurch können Sie Daten flexibler verwalten und unerwünschte Änderungen an ihren Werten verhindern.
Definieren des Byval-Parameters
Wenn ein Parameter mit einem Schlüsselwort deklariert wird ByVal. der an eine Prozedur oder Funktion übergebene Wert wird in eine interne Variable kopiert, die lokal für eine bestimmte Prozedur oder Funktion ist. Dies bedeutet, dass Änderungen, die innerhalb einer Prozedur oder Funktion an einer Kopie der Variablen vorgenommen werden, keinen Einfluss auf den Wert der übergebenen Quellvariablen haben.
Sub ByvalExample(ByVal number As Integer)number = number + 1MsgBox "Значение переменной number: " & numberEnd SubSub Main()Dim a As Integera = 5MsgBox "Исходное значение переменной a: " & aByvalExample aMsgBox "Значение переменной a после вызова функции: " & aEnd Sub
In diesem Beispiel wird eine Prozedur erstellt ByvalExample, die einen Parameter akzeptiert number nach Bedeutung. Innerhalb des Verfahrens ist der Wert number erhöht sich um 1. Anschließend wird eine Meldung mit dem aktualisierten Wert angezeigt number.
Im Verfahren Main eine Variable wird erstellt a mit einem Wert von 5. Anschließend wird eine Meldung mit dem ursprünglichen Wert der Variablen angezeigt a. Anschließend wird die Prozedur aufgerufen ByvalExample mit Variablenübergabe a als Argument. Nach dem Aufruf wird eine Meldung mit dem aktuellen Wert der Variablen angezeigt a. Es ist wichtig zu beachten, dass in diesem Fall der Wert der Variablen a hat sich nicht geändert, da der Parameter als Wert übergeben wurde.
Stichwort ByVal wird häufig verwendet, wenn Sie nur eine einseitige Übertragung des Wertes einer Variablen innerhalb einer Prozedur oder Funktion organisieren möchten, ohne sie direkt ändern zu können. Dies vermeidet auch unerwartete Nebenwirkungen, die mit der Änderung der als Argumente übergebenen Variablen verbunden sind.