VBA 使用UBound(myArray) = -1判断数组为空报错
时间: 2023-06-04 10:08:04 浏览: 836
对于这个问题,我可以告诉你,UBound函数返回的是数组的上限,在数组为空时,UBound函数会返回-1,因此使用UBound(myArray) = -1判断数组为空会报错。你可以使用UBound(myArray) = LBound(myArray) - 1来判断数组为空。
相关问题
怎么用VB提取每行J1=后的数字到MSHFlexGrid1中 CIP Z=-1.923 Y=5.495 K1=-1.973 J1=5.59 CIP Z=-1.799 Y=5.253 K1=-1.86 J1=5.374
可以使用VB中的Split函数和Mid函数来提取每行J1=后的数字到MSHFlexGrid1中,具体操作如下:
1. 首先,将文本文件逐行读取到一个字符串数组中。
2. 对于每行字符串,使用Split函数将其按照空格分隔成一个字符串数组。
3. 遍历该字符串数组,查找包含J1=的字符串,并使用Mid函数截取该字符串后的数字。
4. 将得到的数字添加到MSHFlexGrid1中。
以下是VB代码示例:
```
Dim fileNum As Integer
Dim fileName As String
Dim fileContent() As String
Dim row As Integer
' 打开文件并读取内容到数组
fileName = "file.txt"
fileNum = FreeFile()
Open fileName For Input As fileNum
row = 1
Do While Not EOF(fileNum)
Line Input #fileNum, fileContent(row)
row = row + 1
Loop
Close fileNum
' 遍历数组并提取J1后的数字到MSHFlexGrid1
For i = 1 To UBound(fileContent)
Dim strArr() As String
strArr = Split(fileContent(i), " ")
For j = 0 To UBound(strArr)
If InStr(strArr(j), "J1=") > 0 Then
Dim num As Double
num = CDbl(Mid(strArr(j), 4))
MSHFlexGrid1.TextMatrix(i, 1) = num ' 添加到MSHFlexGrid1中
End If
Next j
Next i
判断数组是否为空 vba
在VBA中,可以使用以下方法判断一个数组是否为空:
1. 使用UBound函数判断数组的上限是否为-1。如果是,则表示数组为空。
```vba
Function IsArrayEmpty(arr As Variant) As Boolean
IsArrayEmpty = (UBound(arr) = -1)
End Function
```
2. 使用IsEmpty函数判断数组变量是否为空。如果是,则表示数组为空。
```vba
Function IsArrayEmpty(arr As Variant) As Boolean
IsArrayEmpty = IsEmpty(arr)
End Function
```
你可以根据自己的需求选择其中的一种方法来判断数组是否为空。
阅读全文