使用Application.Match的Excel VBA类型不匹配错误

时间:2015-02-26 09:43:44

标签: excel vba excel-vba

我正在运行一个简单的代码,但是我遇到了类型不匹配错误。

代码如下

    For i = 2 To rightcomp
        matchC = Application.Match(Worksheets(2).Cells(1, i), Worksheets(3).Rows(1), 0)
        MsgBox matchC
        For jur = 2 To downlastcomp
            matchr = Application.Match(Worksheets(2).Cells(jur, 1), Worksheets(3).Columns(temp), 0)
            Worksheets(2).Cells(jur, i).Value = Worksheets(3).Cells(matchr, matchC).Value
        Next jur
    Next i

最初我在下面一行中犯了一个错误:

matchr = Application.Match(Worksheets(2).Cells(jur, 1), Worksheets(3).Columns(temp), 0)

Intstead of

.Cells(jur, 1)

我有

.Cells(i, 1)

代码有效,但填写的值不正确。当我更正代码,从而将i更改为jur时,代码正确地填充了第一列,但是我得到了第二列的错误。有什么想法吗?

增加:

我有两张来自不同来源的纸张。我添加了一个新工作表并协调了列和行。如果列和行都在两张纸上,我会在第三张纸上打印它们。

然后我使用上面的代码填写第三张表中的其余数据。因此,不能找到数据。

此外,使用下面的内容,MsgBox一直被正确调用,但是如果我将下面的内容更改为jur,则只调用一次MsgBox和第一行。

.Cells(i, 1)

matchC中的值是字符串,matchR中的值是数字和字符串。

另外,如果注释掉下面的代码,则代码不会导致类型不匹配错误。

Worksheets(2).Cells(jur, i).Value = Worksheets(3).Cells(matchR, matchC).Value

0 个答案:

没有答案