VBA一个整数总是大于另一个整数的某个值
我只是想知道在VBA中是否有一种简单的方法可以做到这一点 假设我总是在循环中使用一个计数器变量,比如说VBA一个整数总是大于另一个整数的某个值,vba,excel,Vba,Excel,我只是想知道在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
,我总是希望,无论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
的值并返回一个整数,但我很想知道是否有其他方法可以通过赋值来实现这一点
希望这个问题有意义
谢谢 您不能通过赋值来完成,但正如您所暗示的,您可以编写以下内容:
Private Const JumpVal as Integer = 3
Private i as Integer
Private Function k()
k = i + JumpVal
End Function
然后你就可以使用函数k,就像你在真实存储时一样。在本例中,我将I
和JumpVal
设置为私有,但如果您需要在模块外部访问它们,只需将private
替换为Public
快乐编码 您可以使用指针接近并始终具有k=i。这是一种纯粹为了好玩而不被认真对待的黑客方式 更多关于这是如何工作的信息是
如果不在代码中处理它,就无法将
k
设置为自动作为i
的增量。但是如果你改用i+JumpVal
,在这里你其实并不需要k。谢谢-我想i+JumpVal
是一种方式,我只是更想知道是否还有其他方式。。。谢谢这不是VBA,但逻辑基本上保持不变。。。我就是这么想的。谢谢哈哈-绝对是一个可爱的“开箱即用”的解决方案。。。有点像原子弹可以杀死老鼠,但它确实起到了作用+1.
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