我在Worksheet_SelectionChange
事件中有一些非常基本和简单的VBA代码,如下所示:
btnB.Top = btnA.Top + btnA.Height
Run Code Online (Sandbox Code Playgroud)
它在我的计算机上运行良好,但它偶尔会在我的同事的计算机上运行.好像工作表周围的5次点击中有3次会产生"Expression Too Complex"
错误.另外2个工作没有抛出错误.我试过了:
Dim D as Double:D = btnA.Top + btnA.Height
btnB.Top = D
Run Code Online (Sandbox Code Playgroud)
同样的,有时候工作,有时会抛出错误.当错误发生时,我打破并检查了D
它的值"-1.#IND"
.我搜索了这个价值并发现它意味着相互间接.btnA.Top
大概是11,500,所以这不是溢出问题.这个问题似乎没有押韵或理由.在16年的VB和VBA编程中,我从未见过或听说过这样的东西.感谢您的帮助/见解.
编辑完整代码:
Sub LineUpBtns()
CommandButton2.Top = CommandButton1.Top + CommandButton1.Height
CommandButton3.Top = CommandButton2.Top + CommandButton2.Height
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
LineUpBtns
End Sub
Run Code Online (Sandbox Code Playgroud)
#IND
是 NaN(非数字),它是表示未定义/无法表示的值的数字数据类型的值。在您所说的浮点计算中,Windows 将其显示为 -1.#IND (不确定)。
为了得到它,我相信你必须做类似的事情:
Dim d As Double
On Error Resume Next
d = 0 / 0
On Error GoTo 0
Run Code Online (Sandbox Code Playgroud)
如果您有任何错误处理,请将其删除以测试问题。您也可能遇到某种错误。因此,对于像您这样的问题,在不查看工作簿本身的情况下可能很难诊断,您可以将其上传到 www.ozgrid.com/forum,以便我们可以自行测试。
归档时间: |
|
查看次数: |
3305 次 |
最近记录: |