SUMIF - 2个工作表运行时错误13

时间:2018-04-01 18:36:50

标签: vba excel-vba sumifs excel

我一直试图在几个小时内解决这个问题而没有任何成功。下面的代码假设查看2个不同的工作表并计算特定值的总和。

在表1 - A栏中,我们有唯一的值,这些值取自第2页 - 第G列。现在,下面的代码假设从第1页 - A列中获取唯一值,验证特定值的提及次数在表2 - 列G中,并将其总值从第N列 - 第2页汇总。然后总和将被粘贴在表1 - 列F中。

在声明变量 lastrow1 lastrow2 之后,我收到运行时错误13 。但是,如果我从代码中删除这些变量,我不会收到任何错误,但每次运行代码时结果都是 0 ,这是不正确的。

有人可以帮助我找到更聪明的方法吗?必须赞赏!

我已经重新更改了代码,现在它似乎工作了。我的问题是它在所有单元格中放置相同的值(来自sumif公式的列F),这是不正确的。我该如何解决这个问题?

   Sub sumvalueF()

    Dim ws As Worksheet
    Dim ws1 As Worksheet
    Dim lastRow As Long


   Set ws = Sheets("Sheet1")
   Set ws1 = Sheets("Sheet2")

   lastRow = ws1.Cells(Rows.Count, "A").End(xlUp).Row

    ws1.Range("F4:F" & lastrow).value = WorksheetFunction.sumif(ws.Range("g7:g30000"), ws1.Range("A4"), ws.Range("n7:n30000"))

    End Sub

1 个答案:

答案 0 :(得分:1)

使用ws1.Range("F4:F & lastrow").value

更改ws1.Range("F4:F" & lastrow).value

EDIT
循环版本:

For i = 4 To lastRow
ws1.Cells(i, 6).Value = WorksheetFunction.SumIf(ws.Range("g7:g30000"), ws1.Range("A"&i), ws.Range("n7:n30000"))
Next i