我在UDF下方计算在XLAM文件中创建的CAGR,该文件与其他用户共享。
Public Function CAGR(StartValue, EndValue, Periods) As Double
CAGR = (EndValue / StartValue) ^ (1 / Periods) - 1
End Function
我们为此公式添加了自定义UI按钮快捷方式。 此代码工作正常,生成的结果为十进制格式。
请帮助我们找到如何在此UDF中添加以下2个功能。
我知道公式不能改变单元格格式。有没有办法从vba调用公式弹出窗口来实现这一点,这样我们就可以先从代码中更改格式然后显示公式弹出窗口?
答案 0 :(得分:1)
如您所知,您无法使用公式调用的UDF更改任何单元格格式。因此,我能想象的唯一方法就是将Worksheet_Change
事件挂钩作为解决方法。
因此,当单元格更改为以=CAGR
开头的公式时,以下内容将更改为numberformat为%。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tCell As Range
For Each tCell In Target.Cells
If Left$(tCell.Formula, 5) = "=CAGR" Then 'if formula begins with =CAGR
tCell.NumberFormat = "#.##%" 'change number format
End If
Next tCell
End Sub