excel - 更改 xlam udf 目标单元格格式
问题描述
我有以下 UDF 来计算在与其他用户共享的 XLAM 文件中创建的 CAGR。
Public Function CAGR(StartValue, EndValue, Periods) As Double
CAGR = (EndValue / StartValue) ^ (1 / Periods) - 1
End Function
我们为此公式添加了自定义 UI 按钮快捷方式。此代码工作正常,生成的结果为十进制格式。
请帮助查找我们如何在此 UDF 中添加以下 2 个功能。
- 我们需要目标单元格格式自动更改为该格式 12.3%,目前默认结果显示为 0.12。
- 如果选择了多个单元格,我们还需要将周期作为填充单元格的计数。
我知道我们的公式不能改变单元格格式。有没有办法从vba调用公式弹出来实现这一点,这样我们就可以先从代码中改变格式,然后显示公式弹出?
解决方案
如您所知,您无法使用公式调用的 UDF 更改任何单元格格式。因此,我能想象自动执行此操作的唯一方法是将Worksheet_Change
事件作为解决方法。
因此,当单元格更改为以 开头的公式时,以下内容将更改为 numberformat 为 % =CAGR
。
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
推荐阅读
- java - 以下java代码线程安全没有volatile吗?
- c++ - 是否可以在 gnu 闪电中进行持续的“阻止”?
- javascript - 如何使加载屏幕运行直到所有图像都加载完毕?
- mongodb - MongoDb 查询 - 基于分组和过滤结果
- html - 通过将鼠标悬停在 div 上开始视频
- javascript - 避免简单输出的分页限制 - Shopify / Liquid
- python - 如何在熊猫中格式化不同的值?
- sql - 我们可以在两个不同的查询中应用案例吗?
- typescript - TypeScript union type allowing values outside of type
- android - Android Studio 中的 Firebase 手机身份验证错误