我工作的一个VBA代码中,我将整数值多次:初始化数组在VBA
Dim IgnoreCol() As Integer
For j = 1 To LastCol
If Cells(1, j).Value = "IGNORE" Then
ReDim Preserve IgnoreCol(Temp)
IgnoreCol(Temp) = j
Temp = Temp + 1
End If
Next
的这部分代码后,我在我的节目的int数组列数 - 现在,下一个循环,我想接近阵列:
For j = 1 To LastCol
If Not IsInArray(j, IgnoreCol) Then
DataLine = DataLine + Trim(Cells(Row, j).Value)
End If
Next j
所以现在我有2个问题:
- 说,无论是的表单中的列在其第一个单元格中具有“IGNORE”,而我的数组“IgnoreCol”为空,并且没有任何单元格被初始化 - 如果数组真的为空,那么返回“True”的条件是什么?
- 我在另一个循环内部使用这段代码 - 这意味着,我想在这段代码的末尾初始化我的“IgnoreCol”数组,然后再次输入它(通过初始化我的意思是删除所有,而不是全部放入0例如细胞)
非常感谢!
1'如果UBOUND(IgnoreCell)> 0',2'REDIM保留IgnoreCell(0)'? –
@mehow UBound(IgnoreCell)返回“TypeMismatch”,因为没有任何单元格被初始化 – Bramat
TypeMismatch?如果数组尚未初始化,通常它的下标超出范围 –