Вы можете использовать функцию Format
, чтобы определить количество десятичных знаков, которые вы хотите сравнить, и использовать функцию IsNumeric
, чтобы проверить, является ли значение числом или нет.
Пример кода:
Cell A1: 6102.75
Cell A2: 6102.75000001
Sub test
'Since in your example both worksheets share the same layout, you only need to check
'if one of the values is numeric, since the other value will automaticly be the same
If IsNumeric(Cells(1,1).Value) Then
MsgBox (Format(Cells(1,1).Value, "0.0000") = Format(Cells(1,1).Value, "0.0000"))
Else
MsgBox Cells(1,1).Value = Cells(1,2).Value
End If
End Sub
Первый параметр Format - это значение, которое вы хотите отформатировать
Второй параметр Format - это строка, определяющая формат
для 4 нулей.после точки задайте количество десятичных знаков
РЕДАКТИРОВАТЬ: Так как @jeeped постет решение с использованием функции Round
.
Обратите внимание, что с помощьюфункция Format
обрезает остальные десятичные разряды вместо округления.
Так что 6102,75
и 6102,75005
будут по-прежнему равны.
EDIT2:
@ jeeped улучшил Format-String, поэтому даже нет необходимости проверять, является ли значение числом или текстом.
Обновленный пример кода:
Cell A1: 6102.75
Cell A2: 6102.75000001
Sub test
MsgBox Format(Cells(1, 1).Value, "0.0000;@") = Format(Cells(1, 2).Value, "0.0000;@")
End Sub
Используя эту строку формата, функция вернет число, сокращенное до 4 десятичных цифр, если это число, или вернет текст enire, если этотекст.