Excel VBA求和/将值相加在一起,即使是带有逗号/小数的值



我遇到了一个问题,无法将数字与小数相加。只有没有小数的数字。

我已经编写了一个代码来汇总来自不同单元格的值。只要数字没有小数,这个就行。

这是我的代码:

Sub SumValues()
'This makro is made to add values together depending on 
'x amount of Sheets in the workbook:
Application.ScreenUpdating = False
'A will sum up the values from each cell, 
'depending on the amount of Sheets  in the this Workbook:
A = 0
For I = 1 To ThisWorkbook.Sheets.Count
'Adding the values from cell E5 to Cells(5, 5 + (I - 1) * 3), 
'with the distance 3 between each cell:
A = A + Cells(5, 5 + (I - 1) * 3)
Next I
'The values A that is added togheter from the cells, is now put in a cell:
Worksheets("Sheet1").Cells(1, 1).Formula = "=" & A & ""
Application.ScreenUpdating = True
End Sub

因此,对于3张纸,"I"从1变为3。因此,如果我的单元格包含以下数字:

Cell(5,5) = 2

Cell(5,8) = 3

Cell(5,11) = 8

我在Cell(1,1) = 13中得到总和

但如果我有这些值:

Cell(5,5) = 2,2

Cell(5,8) = 3

Cell(5,11) = 8

运行脚本时,我收到"运行时错误"9":下标超出范围"错误消息。有什么建议吗?

另一个问题是,是否可以将公式输入到我正在相加的单元格中?对于Examlpe,如果我的工作簿中有3张表,它将汇总Cell(5,5)Cell(5,8)Cell(5,11)的值。总和如Cell(1,1)所示。但我得到的只是数字,而不是公式。是否可以使单元格显示公式"=E5+H5+K5"?最后一个问题可能是第一个问题的"修复",如果是分离器","可能会制造麻烦?

感谢

GingerBoy

经过测试,工作良好

  1. 声明您的变量
  2. 您需要使用工作表限定对象
  3. 无需在此处关闭Screen Updating。你只是在修改一个单元格

此代码将把Value放入A1,把Formula放入B1


免责声明:

如果将任何具有非数值的单元格输入到循环中,那么您的代码和下面的代码将受到潜在的Type Mismatch Error的约束。如果任何非数字单元格都有可能在和范围内,您可以通过在循环中嵌套以下内容来避免错误:If ISNUMERIC(Range) Then


Sub SumValues()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim A As Double, i As Long, Loc As String
For i = 1 To ThisWorkbook.Sheets.Count
A = A + ws.Cells(5, (5 + (i - 1) * 3))
Loc = ws.Cells(5, (5 + (i - 1) * 3)).Address(False, False) & "+" & Loc
Next i
ws.Range("A1") = A
ws.Range("B1").Formula = "=" & Mid(Loc, 1, Len(Loc) - 1)
End Sub

相关内容

最新更新