IsNumeric в Open Office Basic или VBA

#vba #openoffice-basic

#vba #openoffice-basic

Вопрос:

Существует ли функция, которая проверяет наличие строковых (нечисловых) значений и возвращает логическое значение в Open Office Basic?

Я попробовал использовать IsNumeric для строки, и она возвращает логическое значение False. Но когда я отрицаю его с помощью Not(IsNumeric(value)), он преобразует возвращаемое значение в long или int.

Ответ №1:

Для Open Office Basic вы можете использовать ISNUMBER()

 ISNUMBER(123)
  

возвращает TRUE.

Ответ №2:

Я потратил часы, пытаясь разобраться, что случилось с ISNUMERIC …

 if IsNumeric(oSheet.GetCellByPosition( 8,iRow).String) then
    oSheet.GetCellByPosition(20,iRow).Value = oSheet.GetCellByPosition( 8,iRow).Value()
else
    oSheet.GetCellByPosition(20,iRow).String = oSheet.GetCellByPosition( 8,iRow).String()
endif
  

Проблема заключалась в том, что атрибут, загружаемый в функцию IsNumeric, должен быть строкой (не объектом или числом!)

Я свяжусь с Эндрю Питонаком, чтобы попросить его разъяснить это в своих руководствах.