我只是想知道在VBA中是否有一种简单的方法可以做到这一点。
假设我总是在我的循环中使用一个计数器变量,比如说i
而我总是想要,无论i
的值是多少还有另一个变量,说k
上面的某个值或者在它下面。
所以,例如:
Dim i as integer
Const JumpVal = 3
Dim k as integer
k = i + JumpVal ' !!And this is to be true regardless of i's value!!
但我希望k 始终远离JumpVal
i
...我知道我可以通过一个简单的函数i
'来做到这一点s值并返回一个整数,但我很想知道是否有其他方法可以通过赋值来完成。
希望这个问题有道理!
谢谢!
答案 0 :(得分:1)
你不能通过作业来做,但正如你暗示的那样,你可以写下以下内容:
Private Const JumpVal as Integer = 3
Private i as Integer
Private Function k()
k = i + JumpVal
End Function
然后你可以使用函数k就像你真实存储它一样。我在此示例中将i
和JumpVal
设为私有,但如果您需要在模块外部访问它们,只需将Private
替换为Public
。
快乐的编码!
答案 1 :(得分:1)
你可以靠近并且总是使用指针来获得k = i。这是纯粹为了好玩而不被认真对待的hacky方式!
有关其工作原理的更多信息,请here
Private Declare PtrSafe Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare PtrSafe Sub FillMemory Lib "kernel32" _
Alias "RtlFillMemory" (Destination As Any, ByVal Length As Long, ByVal Fill As Byte)
Sub Test()
Dim i As Variant
Dim k As Variant
Const JumpVal = 3
'NOTE k is only declared and not initialised.
i = Array(56, JumpVal)
CopyMemory k, i, 16
Debug.Print k(0) + k(1)
i(0) = 96
Debug.Print k(0) + k(1)
'or Debug.Print Application.sum(k)
FillMemory k, 16, 0
End Sub