【发布时间】:2021-06-18 02:21:41
【问题描述】:
任何人都可以在下面的 VBA 代码中提供帮助,它从 A 列和 B 列获取数据并添加它,
问题是我需要按 F2 来刷新公式:
示例 - A = 6(1+2+3) 和 B = 15(4+5+6),
代码结果=+=1+2+3+=4+5+6
我必须手动按 F2 并接受公式来计算结果,我可以添加到代码中以便它自动计算,下面是我的 VBA 代码?
有什么方法可以让单元格接受公式,我的数据可能在数据之间有“+”或“=”符号,例如:=+1+2+3=+4+5+6。
Sub datashftfinal1()
Dim i As Integer
Dim val1 As String
Dim val2 As String
Dim valF As String
For i = 1 To 10
If Cells(i + 1, 2).Value >= 0 Then
val1 = Cells(i + 1, 1).FormulaR1C1
val2 = Cells(i + 1, 2).FormulaR1C1
valF = "+" & val1 & "+" & val2
Cells(i + 1, 1).FormulaR1C1 = valF
End If
Next i
End Sub
样本数据
A1 栏
=1+2+3
B1 栏
=4+5+6
我在上面的数据示例中给出了数据的公式视图,运行代码后我得到如下结果:
=1+2+3+=4+5+6
它不是计算结果而是显示公式,我需要按 F2 并接受公式,下面是我的代码:
enter code here
Sub Data()
Dim i As Integer
Dim val1 As String
Dim val2 As String
Dim valF As String
For i = 1 To 10
If Cells(i + 1, 2).Value >= 0 Then
val1 = Cells(i + 1, 1).FormulaR1C1
val2 = Cells(i + 1, 2).FormulaR1C1
valF = "+" & val1 & "+" & val2
Cells(i + 1, 1).FormulaR1C1 = valF
End If
Next i
End Sub
【问题讨论】:
-
您的意思是您在excel表格中输入的公式无法计算,还是您需要手动重新启动代码才能刷新新单元格?
-
是的,它不计算,我尝试了 cell(i+1,1).calculate 但它没有用。当我手动转到单元格按 F2 并输入时它可以工作,它接受公式而不是
-
不应该
valF = "+" & val1 & "+" & val2是valF = "=" & val1 & "+" & val2吗? (第一个加号变为等号)。您能否举例说明您的公式最终应该是什么样子? -
@rohrl77 感谢您的提示回复,是的,我尝试输入“=”,但它给出了运行时错误 1004:Sub Try2() Dim i As Integer Dim val1 As String Dim val2 As String Dim valF As String For i = 1 To 10 If Cells(i + 1, 2).Value >= 0 Then val1 = Cells(i + 1, 1).FormulaR1C1 val2 = Cells(i + 1, 2).FormulaR1C1 valF = "=" & val1 & "+" & val2 Cells(i + 1, 1).FormulaR1C1 = valF End If Next i End Sub
-
您能否提供示例数据以及该示例数据的公式应该是什么样的?请始终edit您的原始问题添加代码或重要信息。 cmets 中的代码不可读。
标签: excel vba excel-formula