CallByName 中的Check有关问题

CallByName 中的Check问题
新建标准 EXE 工程
' 添加 Check1, Check2, Check3
' 添加 Command1, Text1
' Set.txt 中的内容:
'Check1=1
'Check2=0
'Check3=2
'Command1=按钮文本
'Text1=运行时改变控件属性!
Option Explicit

Private Sub Command1_Click()

  '下面文件路径按你实际情况写
  '请保证格式正确
  Open "X:\Temp\Set.txt" For Input As #1
  Dim strText$, arrParam$()
  While (Not EOF(1))
  Line Input #1, strText
  arrParam = Split(strText, "=")
  If (InStr(1, arrParam(0), "Command") = 1) Then
  CallByName Controls(arrParam(0)), "Caption", VbLet, arrParam(1)
  Else
  If (InStr(1, arrParam(0), "Text") = 1) Then
  CallByName Controls(arrParam(0)), "Text", VbLet, arrParam(1)
  Else
  CallByName Controls(arrParam(0)), "Value", VbLet, arrParam(1)
  End If
  End If
  Wend

End Sub

如果把CHECK改变成数组 就提示控件未找到 求解决办法

------解决方案--------------------
VB code
Option Explicit
' Check1 是控件数,共人3个成员,索引号(创建时的默认值)分别是0, 1, 2
' Set.txt 中的内容:
'Check1,0=1
'Check1,1=0
'Check1,2=2
'Command1=按钮文本
'Text1=运行时改变控件属性!
Private Sub Command1_Click()

    '下面文件路径按你实际情况写,请保证格式正确!
    Open "X:\Temp\Set.txt" For Input As #1
    Dim strText$, arrParam$()
    While (Not EOF(1))
        Line Input #1, strText
        arrParam = Split(strText, "=")
        If (InStr(1, arrParam(0), "Command") = 1) Then
            CallByName Controls(arrParam(0)), "Caption", VbLet, arrParam(1)
        Else
            If (InStr(1, arrParam(0), "Text") = 1) Then
                CallByName Controls(arrParam(0)), "Text", VbLet, arrParam(1)
            Else
                CallByName Controls((Split(arrParam(0), ",")(0)))(Split(arrParam(0), ",")(1)), "Value", VbLet, arrParam(1)
            End If
        End If
    Wend
    Close

End Sub