当我在下面运行代码时
Sub test2() Dim i,
Rownumber As Integer
Rownumber = Sheets("Sheet4").Range("A65536").End(xlUp).Row
For i = 2 To Rownumber
Sheets("Sheet4").Cells(i, 3).Formula = "=sumif(Sheet3!$A$2:$A$10, Sheet4!A2, Sheet3!$B$2:$B$10)"
Next i
End Sub
宏运行良好,但当我将其转换为宏VBA时:
Sub test2()
Dim i, Rownumber As Integer
Rownumber = Sheets("Sheet4").Range("A65536").End(xlUp).Row
For i = 2 To Rownumber
Sheets("Sheet4").Cells(i, 3).Value = Application.WorksheetFunction.SumIfs(Sheets("Sheet3").Range("A2:A10"), Sheets("Sheet4").Cells(2, 1), Sheets("Sheet3").Range("B2:B10"))
Next i
End Sub
它给了我错误 - > 运行类型错误13,输入missmatch
为什么会发生这种情况以及如何解决这个问题? - 已关闭
由于
问题2
以下代码在执行时运行良好:
For j = 3 To Colnumber
For i = 2 To Rownumber
Sheets("Sheet2").Cells(i, j).Value = Application.WorksheetFunction.SumIfs(Sheets("3G").**Range("F2:F6991")**, Sheets("3G").Range("E2:E6991"), Sheets("Sheet2").Cells(i, 1))
Next i
Next j
但是为什么我把它改成:
Sheets("Sheet2").Cells(i, j).Value = Application.WorksheetFunction.SumIfs(Sheets("3G").**Range(Cells(2, 6), Cells(6991, 6))**, Sheets("3G").Range("E2:E6991"), Sheets("Sheet2").Cells(i, 1))
它给了我错误:错误1004,应用程序定义或定义对象错误??
TIA
答案 0 :(得分:0)
SumIf
不是SumIfs
。参数的顺序不同,从而导致错误。
SumIfs
从要求总和(多细胞范围)的范围开始,然后是成对的标准范围(多细胞范围)和标准(单细胞)。
SumIf
从Criteria Range开始,然后是Criteria(单个单元格),然后是要求总和的范围(多个单元格范围)。
通过相应地交换参数的顺序或使用其他函数(SumIf
而非SumIfs
)