Как использовать функцию TRUNC в VBA Доступно в Excel - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно использовать функцию TRUNC, которая доступна в Excel, в VBA. Я заметил, что это не доступно в Application.WorksheetFunction. как я могу получить это?

спасибо заранее.

Ответы [ 4 ]

0 голосов
/ 11 октября 2019

Выберите. Все приведенные ниже функции возвращают значение 2 для 2.71828182845905

Public Sub TestTT ()

Dim x As Double
x = Exp(1)

Debug.Print x, WorksheetFunction.Floor(x, 1)
Debug.Print x, Fix(x)
Debug.Print x, CLng(x)
Debug.Print x, WorksheetFunction.Round(x - 0.5, 0)

End Sub

0 голосов
/ 11 октября 2019

Если вы хотите использовать TRUNC вместо Fix, поскольку вам нужно указать количество знаков после запятой, оставшихся после усечения, вы можете использовать Application.Evaluate, чтобы сделать что-то такое:

Debug.Print Application.Evaluate("=TRUNC(3.14159265359, 4)")
'will return 3.1415
0 голосов
/ 11 октября 2019

Если вы хотите VBA эквивалент, что-то вроде:

Function vbaTRUNC(num As Double, Optional digits As Long = 0) As Double
    vbaTRUNC = Fix(num * 10 ^ digits) / 10 ^ digits
End Function
0 голосов
/ 11 октября 2019

Вы можете использовать функцию разделения и разделения на .

NewStr = split(string, ".")(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...