我遇到了一个问题,无法将数字与小数相加。只有没有小数的数字。
我已经编写了一个代码来汇总来自不同单元格的值。只要数字没有小数,这个就行。
这是我的代码:
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
经过测试,工作良好
- 声明您的变量
- 您需要使用工作表限定对象
- 无需在此处关闭
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