Всем доброго времени суток. Пока не спится, чтоб чем-то себя занять, написал наброски 3х функций Вдруг кому-нибудь пригодятся Для работы должен быть включен параметр "Использование элементов управления ActiveX, не помеченных как безопасные для использования" в параметрах безопасности IE
Код
let
InputBox = (Prompt,optional Caption as nullable text,optional Default as nullable any,optional Type as nullable number)=>
Web.Page("<script>
try {
var xlapp = GetObject('','Excel.Application');
var ret=xlapp.InputBox('"&Prompt&"','"&(if Caption=null then "null" else Text.From(Caption))&"','"&
(if Default=null then "null" else Text.From(Default))&"',null,null,null,null,"&
(if Type=null then "null" else Text.From(Type))&")
} catch (e){
var err=(e.message)
}
document.write('<table><tr><th>ret</th></tr><tr><td>'+(typeof err!=='undefined'?err:ret)+'</td></tr></table>')
</script>"){0}[Data][ret]{0},
SelectFolder = (InitialFileName,Title) =>
Web.Page("<script>
try{
var dlg=GetObject('','Excel.Application').FileDialog(4);
dlg.title='"&Title&"';
dlg.InitialFileName='"&Text.Replace(InitialFileName,"\","\\")&"';
var ret=(dlg.show()==-1?dlg.selecteditems.item(1):'')
} catch (e){
var err=(e.message)
}
document.write('<table><tr><th>ret</th></tr><tr><td>'+(typeof err!=='undefined'?err:ret)+'</td></tr></table>')
</script>"){0}[Data][ret]{0},
ThisWBPath = Web.Page("<script>
try{
var xlapp = GetObject('','Excel.Application');
var ret=xlapp.activeworkbook.fullname
} catch (e){
var err=(e.message)
}
document.write('<table><tr><th>ret</th></tr><tr><td>'+(typeof err!=='undefined'?err:ret)+'</td></tr></table>')
</script>"){0}[Data][ret]{0},
Path = if try Number.From(InputBox("Введите значение параметра X","Запрос1 - Ввод параметра X",0,1))>0 otherwise false then SelectFolder("C:\","Выберите папку") else ThisWBPath
in
Path
Ну за безопасность - пусть лучше медведь ответит - у меня недостаточно компетенции в такой области знаний (хотя Включить (небезопасно) - наводит на мысль а надо ли?). Я собственно о том, может сразу разделить требуемый функционал на решаемый в VBA и решаемый в Power Query - зачем заниматься скрещиванием? В чём профит? Хотя никогда не был против исследований в стиле - ради спортивного интереса - это всегда позволяет взглянуть на предмет исследования с новой стороны. Я с большим удовольствием разбираю ваш подход в решениях задач на Power Query - бывают очень полезные моменты. Так что даже настаиваю - продолжайте!