Volba Excel buňky s daty v VBScript

hlasů
-2

Byl jsem se snaží manipulovat Excel soubory pouze kódu VBScript. Je to samostatný VBScript, který je otevírání a zavírání souborů aplikace Excel. Problém je s Range(Selection, Selection.End(xlDown)).Selectkódem. Při spuštění tohoto kódu v jazyce maker aplikace Excel je vybrat všechny řádky s průběžných dat v určité buňce. Jak chci, aby to udělat. Problém je v tom, když se snažím spustit tento kód z VBScript. Typ souboru je.vbs

Vytvořil jsem objekt Excel: Set objExcel = CreateObject(Excel.Application)uvnitř skriptu. a kód objExcel.Range(A5).selectje správný výběr buňky. Ale objExcel.Range(Selection, Selection.End(xlDown)).Selectnedělá nic. Je to stejné funkce, když budete držet shift + ctrla stiskněte šipku dolů v Excelu. Když jsem zaznamenat makro v Excelu a spusťte jej tam jsou také žádné problémy, stejný kód je spuštěn v VBA normálně. Řádky jsou stále vybrána. Jediným problémem je, když jsem převést tento kód na samostatnou VBScript že se nic neděje.

Musím způsob, jak vybrat souvislé buňky s daty v něm. Stejný jako ctrl+shift+ dolů, nahoru, doleva, doprava. Pokud víte, že žádný jiný způsob, jak dosáhnout to, že jsem v pořádku s ním.

Položena 27/11/2018 v 18:02
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

VBScriptnerozumí konstanty používané VBAnastavení jako je xlDown.

Budete muset odkazovat na skutečnou hodnotu pro xlDownmísto, které můžete získat z webu MS Docs

V tomto konkrétním případě se zmiňujete, konstantní hodnota, -4121takže příkaz vbscriptbude vypadat následovně:

objExcel.Range(Selection, Selection.End(-4121)).Select i

Nicméně, měli byste se vždy snažit, aby se zabránilo používání Select ve VBA / VBScript vzhledem k výkonu nálezu, zkontrolujte, zda zde pro více informací

Odpovězeno 27/11/2018 v 18:11
zdroj uživatelem

hlasů
0

Napadlo mě to, když jsem použil testovací skript.

Problém byl s xlDirection. Kód začal pracovat, když jsem začal pomocí čísel z dokumentace. Také tam byl problém byl s Selectionklíčové slovo objExcel.Range(Selection, Selection.End(-4121)).Select. To se vrátilo Object required:'Selection'. Přidal jsem objExel.do obou případech Selection:

objExcel.Range(objExcel.Selection, objExcel.Selection.End(-4121)).Select,

Je to nyní pracuje tak, jak má.

Odpovězeno 28/11/2018 v 14:49
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more