代码之家  ›  专栏  ›  技术社区  ›  aditya

更改XLAM UDF目标单元格格式

  •  1
  • aditya  · 技术社区  · 7 年前

    我有下面的自定义项来计算在xlam文件中创建的cagr,该文件与其他用户共享。

    Public Function CAGR(StartValue, EndValue, Periods) As Double
    CAGR = (EndValue / StartValue) ^ (1 / Periods) - 1
    End Function
    

    我们已为此公式添加了自定义用户界面按钮快捷方式。 这段代码运行良好,生成的结果是十进制格式的。

    请帮助我们找到如何在这个自定义项中添加以下两个功能。

    1. 我们需要目标单元格格式自动更改为 格式12.3%,当前默认结果显示为0.12。
    2. 如果多个单元格是 挑选出来的。

    我知道公式不能改变单元格格式。是否有任何方法可以从vba调用formula popup来实现这一点,以便我们可以首先从代码更改格式,然后显示formulapopup?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Pᴇʜ    7 年前

    正如您已经知道的,不能使用公式调用的自定义项更改任何单元格格式。因此,我能想象的唯一办法是自动连接 Worksheet_Change 作为解决方法的事件。

    因此,当单元格更改为以 =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
    
    推荐文章