excel vba 缺个别组或用户定义类型

excel vba 缺少数组或用户定义类型
Private Sub cmdSupplementary_pay_Click()
Dim i, j, n, n1, n2, czint, filla As Integer
Dim ColName(), czColarr(), fkColarr() As String
Dim isA, isB As Boolean

n = 0
For j = 1 To Sheet1.UsedRange.Columns.Count
    n = n + 1
    ReDim Preserve ColName(n)
    If Mid(Sheet1.Cells(1, j).Address, 2, 2) = "$" Then
        ColName(n - 1) = Sheet1.Range(Mid(Sheet1.Cells(1, j).Address, 2, 1) + CStr(1))
    Else
        ColName(n - 1) = Sheet1.Range(Mid(Sheet1.Cells(1, j).Address, 2, 2) + CStr(1))
    End If
    
Next

For j = 0 To UBound(ColName)
    If ColName(j) = "操作" Then
        czint = j + 1
    End If
    If ColName(j) = "付款性质" Then
        filla = j + 1
    End If
Next
Erase ColName

n1 = 0
n2 = 0
For i = 2 To Sheet1.UsedRange.Rows.Count + 1
    If Sheet1.Cells(i, 1) <> "" Then
        If (Sheet1.Cells(i, czint) = "财务付款确认") Then
            n1 = n1 + 1
            ReDim Preserve czColarr(n1)
            '要拷贝的指定位置 =BF700
            If Mid(Sheet1.Cells(1, j).Address, 2, 2) = "$" Then
                czColarr(n1 - 1) = Mid(Sheet1.Cells(i, filla).Address, 2, 1) + CStr(i)
            Else
                czColarr(n1 - 1) = Mid(Sheet1.Cells(i, filla).Address, 2, 2) + CStr(i)
            End If
        End If
        If (Sheet1.Cells(i, filla) <> "") Then
            n2 = n2 + 1
            ReDim Preserve fkColarr(n2)
            'filla + 6 是‘付款性质’字段后面的列值
            '=BF695:BL695
            If Mid(Sheet1.Cells(1, j).Address, 2, 2) = "$" Then
                fkColarr(n2 - 1) = Mid(Sheet1.Cells(i, filla).Address, 2, 1) + CStr(i) + ":" + Mid(Sheet1.Cells(i, filla + 6).Address, 2, 1) + CStr(i)