如果公式在作为范围一部分的单元格中生成“X”,则会填充一个数组:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Fault(10) As Boolean
For i = 1 To 10
If Range("A" & i).Value = "X" Then
Fault(i) = True
End If
Next i
MsgBox Fault 'VBA Errors Here With "Type Mismatch"
End Sub
我的问题是,是否可以将整个数组作为字符串返回。所以在上面的例子中,如果没有错误,我希望消息框返回“0000000000”。如果第7个数组出现故障,则返回“0000001000”。
我的目的是检查字符串是否总是等于“0000000000”才能继续。但是,如果有更好的方法来检查整个数组是否为假,那么这将更加容易。
答案 0 :(得分:3)
试试这个:
Sub JoinArray()
Dim Fault(9) As String, arrString As String
For i = 1 To 10
If Range("A" & i) = "X" Then
Fault(i - 1) = 1
Else
Fault(i - 1) = 0
End If
Next i
arrString = Join(Fault(), "")
If InStr(arrString, "1") Then
MsgBox "Fault Found"
Else
MsgBox "No faults found"
End If
End Sub
注意:
Fault(9)
允许10个插槽,例如范围(" A1:A10&#34)""
的{{1}}参数表示输出中没有空格,即0011000000 替代方法,不使用数组
Join