Можно ли из Delphi выполнить в Excel макрос, не записывая его в документ?
Можно ли выполнить макрос, не внося изменений в открытый документ Excel?
Ну если перевести его на язык Делфи, то почему бы и нет.
Ну если перевести его на язык Делфи, то почему бы и нет.
Какой "дельный" совет!
Если бы можно было перевести на Delphi, я бы не спрашивал. Мне надо проверить тип данных. Макросом это делаю так IsDate() .. IsNumeric()...
Дату очень удобно проверять, он сразу на все возможные форматы даты смотрит: 01.02.02, 01/02/02 ...... и т.п.
А в Дельфе это как? Ручками проверять?
Какой "дельный" совет!
Если бы можно было перевести на Delphi, я бы не спрашивал. Мне надо проверить тип данных. Макросом это делаю так IsDate() .. IsNumeric()...
Дату очень удобно проверять, он сразу на все возможные форматы даты смотрит: 01.02.02, 01/02/02 ...... и т.п.
А в Дельфе это как? Ручками проверять?
Каков вопрос - таков и ответ!
IsDate(), IsNumeric() - это функции VBA, а не Excel'а, поэтому стандартными подходами их не заюзаешь.
Взгляни лучше на функцию Excel'а ЯЧЕЙКА - мне кажется она тебе сможет их заменить.
Каков вопрос - таков и ответ!
IsDate(), IsNumeric() - это функции VBA, а не Excel'а, поэтому стандартными подходами их не заюзаешь.
Взгляни лучше на функцию Excel'а ЯЧЕЙКА - мне кажется она тебе сможет их заменить.
Функция хорошая, спасибо.
Однако, мне надо анализировать не ячейку. Мне надо анализировать значение переменно типа Variant в Delphi. Записывать это значение в Excel, для анализа, не входит в мои планы.
Функция хорошая, спасибо.
Однако, мне надо анализировать не ячейку. Мне надо анализировать значение переменно типа Variant в Delphi. Записывать это значение в Excel, для анализа, не входит в мои планы.
Если переменная типа Variant принадлежит Делфи, то где тут Excel?
Если переменная типа Variant принадлежит Делфи, то где тут Excel?
:D Запутал я...
Дело в том, что эта переменная будет потом использоваться в Excel. Но перед этим надо узнать ее тип, что бы понять как ее использовать. Я хотел для этого задействовать VBA Ёкселя, поскольку он очень лихо определяет типы данных.
Я хотел для этого задействовать VBA Ёкселя, поскольку он очень лихо определяет типы данных.
Ты герой. :D
Вопрос на $100: модуль Variants в делфи для чего служит?
Есть функция
она возвращает тип текущего значения в вариантной переменной.
а вот эты функция вернёт вообще значение переменной в строковом предствалении
Ты герой. :D
Вопрос на $100: модуль Variants в делфи для чего служит?
Есть функция
она возвращает тип текущего значения в вариантной переменной.
а вот эты функция вернёт вообще значение переменной в строковом предствалении
КЛАСС!
А ты пробовал считать строку из поля ввода (TEdit) в Variant и испольовать VarType ?
А я пробовал. Как ты не крути, а функция тебе выдаст 256 - что есть Pascal String.
КЛАСС!
А ты пробовал считать строку из поля ввода (TEdit) в Variant и испольовать VarType ?
А я пробовал. Как ты не крути, а функция тебе выдаст 256 - что есть Pascal String.
А ты что хотел?
Чтоб она ещё и распознавала за тебя, что введено? Могу дать модуль для разбора строки, с помощью него, ты сможешь разобрать строку и определить, что введено - это если нужно проверить какой-нить хитрый формат. Есть ещё TryStrToInt, TryStrToFloat, TryStrToDate, TryStrToDateTime, TryStrToBool и еще несколько - они пытаются строку преобразовать в обычные типы. Что мешает их использовать?
А ты что хотел?
Чтоб она ещё и распознавала за тебя, что введено?
Функции IsDate(), IsNumeric() ... именно это и делают.
А твой модуль все возможные форматы даты определяет? Например такой формат "12 мая 2003". А представь, что такой формат может быть задан на разных языках народов мира?
Очень просто. Использовать их нельзя, так как, к примеру, TryStrToDate определяет только один формат даты (заданный в системе). А мне надо определять все возможные форматы даты, как это делает Excel (почему к его помощи я и прибег).
Я вообще-то не люблю Basic и не уважаю его. Но в данном случае это простейший, а главное быстрейший вариант.
Очень просто. Использовать их нельзя, так как, к примеру, TryStrToDate определяет только один формат даты (заданный в системе). А мне надо определять все возможные форматы даты, как это делает Excel (почему к его помощи я и прибег).
Так, ты хочешь сказать, что я ничего в делфи не смыслю и полный чайник?
А ты сперва читал документацию?
где TFormatSettings - это структура с форматом даты.
Так, ты хочешь сказать, что я ничего в делфи не смыслю и полный чайник?
А ты сперва читал документацию?
где TFormatSettings - это структура с форматом даты.
Почитал и даже попробовал. Получал я TFormatSettings для LOCALE_SYSTEM_DEFAULT. Применял TryStrToDate. Длинный формат даты она у меня так и не распознала. А потом как ты предлагаешь проверять форматы с разными разделителями даты к примеру? В TFormatSettings указывается один разделитель (у меня точка). Ты предлагаешь в цикле разные варианты подставлять. А если у меня винда русская, то я месяцы по английски не смогу записывать, или предлагаешь перебирать все форматы функцией GetLocaleFormatSettings() ?
Я ни в коем случае не говорю, что ты "чайник"! Просто ты на мою проблему смотришь слишком поверхтностно, как мне кажется.
Ты предлагаешь в цикле разные варианты подставлять.
Я такого не предлагаю.
В любой программе есть такая вещь как "Настройка" - предоставь пользователю возможность самому поставить какой нибудь один вариант записи даты и не мучайся. Зачем нужна такая гибкость, когда программа сама рвёт попу, чтоб понять, что же такое пользователь ввёл?
Я такого не предлагаю.
В любой программе есть такая вещь как "Настройка" - предоставь пользователю возможность самому поставить какой нибудь один вариант записи даты и не мучайся. Зачем нужна такая гибкость, когда программа сама рвёт попу, чтоб понять, что же такое пользователь ввёл?
Ну как,... Все для человека!!! ;) Для чайников, так сказать! :)
Нашел классную библиотеку от Microsoft. Я о ней раньше не слышал. Она решает мою проблему! Она позволяет исполнять VB script без обращения к Excel! Подробности тут:
http://www.nkfi.ru/doc/prog/delphi076.html#04
http://72.14.203.104/search?q=cache:tUKXCC_dM2QJ:www.linuxeden.com/forum/blog/resserver.php%3FblogId%3D110848%26resource%3DScripting%2520Your%2520Delphi%2520Applications.pdf+TScriptControl+Run&hl=ru&gl=ru&ct=clnk&cd=16