我尝试使用VBA在Excel中的单元格区域内自动清除值。调试以下代码时,我一直收到类型不匹配错误。我哪里出错了?
Sub autosumtest()
Dim total As Integer
Worksheets("Sheet1Test").Select
Range("F16:G20").Select
total = CInt("=SUM(Selection.Values)")
MsgBox (total)
End Sub
EDIT 1:
以下是我的测试数据的简单示例,名为Autosum Range:
答案 0 :(得分:6)
您可以使用[]评估任何电子表格表达式。
Sub autosumtest()
Dim total As Integer
total = CInt([=sum(sheet1Test!F16:G20)])
MsgBox (total)
End Sub
答案 1 :(得分:2)
您的范围F16 to G20
将包含不同的格式。确保他们已解决Number
格式和问题。
您还可以使用以下内容;
Sub autosumtest()
Dim total As Integer
total = [=SUM(Sheet1Test!F16:G20)]
MsgBox (total)
End Sub
答案 2 :(得分:2)
是的,存在类型不匹配,因为“= SUM(F16:G20)”是一个字符串。
应使用工作表功能来总结所需的范围。除非希望进一步选择,否则不需要选择。
Option Explicit
Sub autosumtest()
Dim total As Integer
Dim rng As Range
Set rng = Worksheets("Sheet1Test").Range("F16:G20")
total = CInt(WorksheetFunction.Sum(rng))
MsgBox (total)
End Sub
答案 3 :(得分:1)
好的,考虑到一些的长度,其他答案和冗余的CInt
....
Sub Easy()
MsgBox Application.Sum(Sheets("Sheet1Test").Range("F16:G20"))
End Sub