在diff宏中使用Application.Index()时,Concat-ed单元格的Col会导致错误13

时间:2015-02-27 19:18:44

标签: excel-vba vba excel

我正在使用下面的连接代码,它工作得非常好。

问题是连接单元格列在与列匹配的不同宏中抛出错误"Type mismatch(我已经广泛使用了匹配的宏),即使连接列不是匹配的列之一匹配宏。

如果删除连接单元格列,则匹配的宏工作正常。

匹配宏

中此时的错误明显
wsPB.Range("A" & j).Resize(1, sLC).Offset(1, 10).Value = Application.Index(arrS, i, 0)

我很确定问题是:

Application.Index(arrS, i, 0)

他们是否有办法让下面的Concatenate代码在遇到时不会产生“类型不匹配”:

Application.Index(arrS, i, 0)

我没有看到ConCat代码将连接的单元格发回到页面的方式有什么奇怪之处     .Value = a

任何帮助或见解都非常适合

谢谢

Sub ConCat()
Dim rng As Range, r As Range, i As Long

Set rng = Range("B2,A2,D2,N2,L2")

If rng Is Nothing Then Exit Sub
With Cells(1).CurrentRegion
    ReDim a(1 To .Rows.Count, 1 To 2)
    a(1, 1) = .Cells(1, 1).Value
    a(1, 2) = "Concat"
    For i = 2 To .Rows.Count
        a(i, 1) = .Cells(i, 1).Value
        For Each r In rng
            If .Cells(i, r.Column) <> "" Then
                a(i, 2) = a(i, 2) & IIf(a(i, 2) = "", "", "|") & _
                .Cells(i, r.Column).Value
            End If
        Next
    Next
    With .Offset(, .Columns.Count + 1).Resize(, 2)
        .Value = a
    End With
End With

End Sub

1 个答案:

答案 0 :(得分:0)

事实证明,工作表中的某些单元格超过254个字符限制,这导致Application.Index(arrS, i, 0)在加工函数中抛出的错误13与ConCat代码无关

修复是在不使用Application.Index(arrS, i, 0)

的情况下重写匹配功能