Страницы: 1
RSS
VBA + javaScript
 
Добрый день.  
Нужно в VBA запустить javaScript, который лежит в том же каталоге что и экселевский файл.  
При этом скрипт возвращает значение типа int, его нужно получить и записать в ячейку А1.  
Есть ли вообще такая возможность?  
 
PS: желательно не открывать никаких браузеров(это я и так реализовать могу)
 
Это побовали?  
http://autoit-script.ru/index.php?PHPSESSID=n4j2s6k23vts7sovjohumcvig5&topic=7540.0
 
Натыкался на эту тему, но там они ни к чему не пришли
 
Почему же не пришли - пришли.  
Например вот так:  
 
   Sub asd()  
        Shell "Cmd.exe /C Start C:\scr.js"  
   End Sub  
 
работает.
 
> При этом скрипт возвращает значение типа int  
Как, кому возвращает?  
Допишите в скрипт запись этого значения в реестр или в файл, потом считывайте из VBA.
 
Большинству из форумчан знаком "Редактор VB" [Alt+F11].
Но что-то я совсем не слышал про "Редактор сценариев" [Alt+Shift+F11]. Работал ли кто в нем? На первый взгляд - html документ с поддержкой javascript.
Вопрос можно ли и если да то как писать скрипты на js в Excel?  
спасибо)
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Orbit3v1, я могу сказать про скрипт vbs - его можно запустить как угодно (макросом или вручную), и он сам может открыть нужный файл и поместить в него значение.  
Думаю, js тоже это должен уметь.  
Другой вариант - макрос запускает скрипт, тот отрабатыввает и помещает значение в clipboard, откуда его забирает тот же макрос.  
 
Про "Редактор сценариев" [Alt+Shift+F11] ничего не скажу - использовал только для просмотра данных файла.
 
subtlety, спасибо получилось.
 
Пожалуйста!  
А как с этим    
"возвращает значение типа int, его нужно получить и записать в ячейку А1."  
решили?
 
может проверить errorlevel после выполнения сценария?
Живи и дай жить..
 
Можно, конечно, но зачем (=  
Код-то простой и так понятно, сработал или нет.
 
я не про ваш код, а про скрипт - если он возвращает код, который можно считать errorlevel-ом, то его можно засунуть в переменную среды, а из vba считать..  
 
но проще, конечно, переписать сам скрипт
Живи и дай жить..
 
Так я и думал! =)  
"если он возвращает код, который можно считать errorlevel-ом"  
А как это сделать? Ткнете в пример?
 
сделать что?
Живи и дай жить..
 
Как передать параметр из скрипта в errorlevel
 
оператором return ?
 
WScript.quit(errorlevel);
Живи и дай жить..
 
Передал значение в макрос через реестр.  
Создал в реестре флаг того, что яваскрипт отработал и сделал запись. Когда этот флаг устанавливается считываю результат из реестра, куда была произведенна запись.  
Всем спасибо за помощь
 
как вариант, а то можно было и сразу в ячейку..
Живи и дай жить..
 
А не расскажите как?  
 
Но мне в принципе не нужно его вставлять в ячеку, нужно получить результат функции и с ним дальше производить вычисления.
 
а зачем, собственно, вообще использовать связку?  
нельзя просто на vba переписать эту функцию?
Живи и дай жить..
 
или уж продолжать на яве..
Живи и дай жить..
 
Зачем - это очень интересный вопрос.  
Попросили создать прайслисты продукции.    
При этом цены на изделия нет, но есть формулы по которым их можно расчитать - около 70000,а находятся они в MSSQL. Формулы написаны на javascript, или на чем-то очень похожем.  
Прайслист они хотят видеть в excel.    
Для этого я в VBA динамически создаю javascript для каждой продукции, запускаю его, получаю цену и вставляю в  MSSQL, тем самым создавая связку продукция - цена.    
После этих махинаций можно уже и создать прайслист в excel.
 
можно пример? этого script-а
Живи и дай жить..
 
Выложу сегодня после 20:00, сейчас нет доступа к ним
 
"на javascript, или на чем-то очень похожем."\  
Может, JScript?  
 
Вообще, зоопарк тот еще...
Страницы: 1
Читают тему
Наверх