Привет всем.
Немного туплю, порыл форум, но никак не найду подходящего решения, или не могу протестировать... а VBA основательно приподзабыл уже
Есть три ячейки, в которых может быть написано число с десятичным знаком или без десятичного знака, причем может быть сохранено как текст или как число:
нужен кусочек кода VBA для проверки содержимого ячейки
Если в ячейке записано целое число, без десятичного знака, то это не ошибка. Неважно, как оно сохранено - как текст или как число
Если в ячейке записано число со знаками после запятой, то если разделитель не точка - это ошибка.
Если в ячейке записано число со знаками после запятой, то если разделитель точка - это не ошибка.
Макрос должен работать в системе с любыми региональными стандартами. Иными словами, хороши только целые числа, и то, что может быть преобразовано в число, но при этом обязательно в нем разделитель - точка.
вот такой код не дает нормального результата, увы
Идеи?
Немного туплю, порыл форум, но никак не найду подходящего решения, или не могу протестировать... а VBA основательно приподзабыл уже
Есть три ячейки, в которых может быть написано число с десятичным знаком или без десятичного знака, причем может быть сохранено как текст или как число:
0.5 | true |
0,5 | false |
1 | true |
Если в ячейке записано целое число, без десятичного знака, то это не ошибка. Неважно, как оно сохранено - как текст или как число
Если в ячейке записано число со знаками после запятой, то если разделитель не точка - это ошибка.
Если в ячейке записано число со знаками после запятой, то если разделитель точка - это не ошибка.
Макрос должен работать в системе с любыми региональными стандартами. Иными словами, хороши только целые числа, и то, что может быть преобразовано в число, но при этом обязательно в нем разделитель - точка.
вот такой код не дает нормального результата, увы
Код |
---|
Sub tezt() With Application .DecimalSeparator = "." .ThousandsSeparator = "," .UseSystemSeparators = False End With Debug.Print "0.5", IsNumeric("0.5") ' false, должно быть true Debug.Print "0,5", IsNumeric("0,5") ' true, должно быть false Debug.Print "1", IsNumeric("1") ' true, всё в порядке Application.UseSystemSeparators = True End Sub |
Идеи?
F1 творит чудеса