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

SUMIF - 2 worksheets run- time error 13

我花了好几个小时尝试解决这个问题,但没有成功。下面的代码假设查看 2 个不同的工作 sheets 并计算特定值的总和。

在 sheet 1 - A 列中,我们有从 sheet 2 - G 列中获取的唯一值。现在下面的代码假定从 sheet 中获取唯一值1 - A 列,验证特定值在 sheet 中被提及的次数 2 - G 列并从 N 列 - sheet 中求和其总值 2. 然后将总和粘贴到 Sheet 1 - F 列。

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

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

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

   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

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

编辑
循环版本:

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