Autosum单元格VBA Excel

我试图使用VBA在Excel中的一个单元块内自动创build值。 debugging下面的代码时,我不断收到types不匹配的错误。 我哪里做错了?

Sub autosumtest() Dim total As Integer Worksheets("Sheet1Test").Select Range("F16:G20").Select total = CInt("=SUM(Selection.Values)") MsgBox (total) End Sub 

EDIT 1:这是我的testing数据称为Autosum范围的简单示例:

在这里输入图像说明

您可以使用[]来评估任何电子表格expression式。

 Sub autosumtest() Dim total As Integer total = CInt([=sum(sheet1Test!F16:G20)]) MsgBox (total) End Sub 

是的,types不匹配,因为“= SUM(F16:G20)”是一个string。

工作表function应该用于总结一个理想的范围。 除非有进一步的select愿望,select是不需要的。

 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 

您的范围F16 to G20将包含不同的格式。 确保他们有Number格式和问题解决。

你也可以使用以下;

 Sub autosumtest() Dim total As Integer total = [=SUM(Sheet1Test!F16:G20)] MsgBox (total) End Sub 

好吧,考虑到其他一些答案的长度和多余的CInt ….

 Sub Easy() MsgBox Application.Sum(Sheets("Sheet1Test").Range("F16:G20")) End Sub