Изменить формат ячейки xlam udf - PullRequest
0 голосов
/ 05 июня 2018

У меня ниже UDF для расчета CAGR, созданного в файле XLAM, который используется совместно с другими пользователями.

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

Мы добавили ярлык кнопки пользовательского интерфейса в эту формулу.Этот код работает нормально, и сгенерированный результат в десятичном формате.

Пожалуйста, помогите узнать, как мы можем добавить ниже 2 функции в этом UDF.

  1. Нам нужен формат ячейки назначения, чтобы автоматическиизменить на этот формат 12,3%, в настоящее время по умолчанию результат отображается как 0,12.
  2. Также нам нужно, чтобы периоды были подсчетом заполненных ячеек, если выбрано несколько ячеек.

Я знаю, что формула не может изменить формат ячейки.Есть ли способ вызвать формулу popup из vba для достижения этой цели, чтобы мы могли сначала изменить формат из кода, а затем показать формулу popup?

1 Ответ

0 голосов
/ 05 июня 2018

Как вы уже знаете, вы не можете изменить любой формат ячеек с помощью UDF, вызываемой по формуле.Поэтому единственный способ сделать это автоматически - это подключить событие 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...