我试图在VBA Excel中创建一个宏,允许我在特定单元格中生成一个简单的和(使用+符号);保留单元格公式中的所有数字。我的意思是我需要输出公式“保持”
在一定范围内。数字应自动添加到+公式中。一个特殊限制是,如果该范围的单元格中没有数字,则公式不应包含“0”。
例如,下面显示的数据是一个范围(A1:A7)内的数字或总和:
A1: 5
A2: 7,5 --> =5+2,5
A3:
A4: 1
A5: 1 --> =3-2
A6:
A7: 5,5
-
式中A2:=5+2,5和A5:=3-2。其他术语只是数字。
-
示例范围=A1:A7
-
B1(或单元格(1、2))上宏的公式输出
应该是:
=5 + 5 + 2,5 + 1 + 3 - 2 + 5,5
(20)
-
伪代码应该是这样的:
对于i=1到7->细胞(1,2)。FormulaLocal=如果单元格(i,1)是一个数字(或带有值的现有加法公式),则添加到当前公式。如果为空或0,请跳到下一个i(或行)。
-
输出:公式“=Value1(5)+公式2(5+2,5)+Skip0Value3()+
价值4(1)等等。。
我已经尝试了以下代码,并取得了部分积极的结果:
Sub summanual()
Dim i As Integer
Dim y As String
For i = 1 To 7
If Cells(i, 1) <> 0 Then
y = Cells(i, 1)
Cells(1, 2).FormulaLocal = Cells(1, 2).FormulaLocal & "+" & y
End If
Next i
If Cells(1, 2) <> 0 Then
Cells(1, 2).FormulaLocal = "=" & Cells(1, 2).FormulaLocal
Else
Cells(1, 2) = ""
End If
End Sub
-
这只适用于正值。添加负数值
比如输出公式中的“+-”。
-
输出公式仅存储原始单元格的结果。前任:
A2是5+2,5,但它是像7,5一样加起来的。应该分开。同样的
A5。
-
在这种情况下,可以将“y”变量声明为字符串吗?
-
还有其他优化吗?也许有一个完全不同的
以更好更快的结果接近?刚刚使用vba excel
任何帮助都将不胜感激
谢谢