excel - 处理数组以避免错误
问题描述
在userform1中,我有以下代码
Private Sub cmdOK_Click()
Dim i As Long
With Me.ListBox2
If .ListCount = 0 Then MsgBox "You Have To Select At Least One Column", vbExclamation: GoTo Skipper
ReDim aCols(0 To .ListCount - 1)
For i = 0 To .ListCount - 1
aCols(i) = "[" & ListBox2.List(i, 0) & "]"
Next i
End With
Skipper:
Unload Me
End Sub
在标准模块中,我将 aCols 声明为 public
Public aCols
如果 listbox2 没有项目,则 aCols 变为空,而如果有项目,则 aCols 变为数组。然后在另一个代码中,我对如何避免错误感到困惑
If UBound(aCols) > -1 Then
如果 aCols 不为空,这可以正常工作,但如果 aCols 为空,我会遇到错误。如何处理这两种情况我只需要避免错误并处理 aCols 要么它是空的,要么它是一个数组。
解决方案
Function safeUBound()
由于 OERN,我会使用它看起来很丑,但效果很好:
Function safeUBound(a)
safeUBound = -1
On Error Resume Next
safeUBound = UBound(a)
End Function
另一种解决方案是在代码的最开头或在用户窗体初始化时将空数组或空二维数组分配给变量。aCols
推荐阅读
- python - 从美丽的汤中获取标签'a'
- list - 反向 zip 2 列表(不使用 zip 或反向)
- magento - Magento 2 Multi Language Force 语言
- html - 为什么固定高度的按钮在有东西但没有用完它的高度时不能与其他按钮完美对齐?
- mysql - 使用单个查询(递归查询)在 mysql 表中查找所有记录的所有父项
- c# - MonoGame VertexPositionColor 在不正确的位置绘制
- javascript - 是创建一个只在一个地方调用的函数,还是使用箭头函数更好?
- visual-studio - Visual Studio VSTO 32 位和 64 位版本
- django - Django - 使用带有多个参数的重定向视图
- discord.py - 让两个用户使用反应 discord.py 互相挑战