gpt4 book ai didi

excel - VBA除以1000而不删除公式

转载 作者:行者123 更新时间:2023-12-01 06:01:14 25 4
gpt4 key购买 nike

我目前正在使用此基本代码将单元格的值除以 1000:

Sub Divide_by_1000()
Dim cell As Range
For Each cell In Selection
cell = cell / 1000
Next
End Sub

虽然它非常适用于硬编码数字,但如果用于其中包含公式的单元格,它会删除公式并输出一个数字。

理想情况下,我希望宏能够像处理带有数字的单元格一样工作,但对于带有公式的单元格,我希望它在当前公式周围加上括号并放置一个 /1000 在最后(即保持公式完整)

我认为需要先进行测试以检查单元格中是否有公式,如果没有则应用我已有的代码,如果有则应用我上面概述的代码。

任何帮助将不胜感激。

最佳答案

您可以通过检查第一个字符是否为等号来检查单元格是否有公式=

If Left$(cell.Formula, 1) = "=" Then

甚至更好

If cell.HasFormula Then

然后重写( … )/1000

扩展的公式
cell.Formula = "=(" & Right$(cell.Formula, Len(cell.Formula) - 1) & ")/1000"

我还建议在除以 1000 之前检查 cell.Value 是否为数字

ElseIf IsNumeric(cell.Value) Then
cell.Value = cell.Value / 1000

所以你最终会得到类似的东西

If Left$(cell.Formula, 1) = "=" Then
cell.Formula = "=(" & Right$(cell.Formula, Len(cell.Formula) - 1) & ")/1000"
ElseIf IsNumeric(cell.Value) Then
cell.Value = cell.Value / 1000
End If

请注意,虽然这适用于普通公式,但它会破坏例如数组公式。

关于excel - VBA除以1000而不删除公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53481104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com