変数としてVBA関数に引数として渡しましたが、元の変数ではなく関数内の引数のみを参照しました。元の変数が関数によって変更されているようです。つまり、同じアドレス空間を共有していますか?ここで何が起こっているのですか?ここで関数に渡されたVBA変数が変更されました
は、関数である:(単位、数十、数百と何千ものグローバル整数変数です)
Function Components(qty As Integer, stringSize As Integer)
If qty < stringSize Then
units = qty
ElseIf qty >= stringSize * 100 Then
thousands = qty \ (stringSize * 100)
qty = qty - (thousands * stringSize * 100)
Components qty, stringSize
ElseIf qty >= stringSize * 10 Then
hundreds = qty \ (stringSize * 10)
qty = qty - (hundreds * stringSize * 10)
Components qty, stringSize
ElseIf qty >= stringSize Then
tens = qty \ (stringSize)
qty = qty - (tens * stringSize)
Components qty, stringSize
End If
End Function
と私は
Components charQty, 26
charQtyは= 565それを
を使用して別の関数からそれを呼び出しますコンポーネントが完了した後、コンポーネントに引き数として渡され、 のcharQty = 19に渡されます。私は関数呼び出しの直前と直後の値を出力することでこれを判断しました。
私はVBAをかなり新しくしています。どんな助けでも大歓迎です。
パラメータは暗黙[により渡されVBAの(ByRef')参照(https://stackoverflow.com/documentation/vba/7363/passing-arguments-byref-or-byval/24427/byref#t=201706020439138540139)。 [値を渡す](https://stackoverflow.com/documentation/vba/7363/passing-arguments-byref-or-byval/28511/byval#t=201706020440066200781)を考えてみましょう。 –