Stránka 1 z 1

doplnění téma Skript na otevírání souboru .xlsm  Vyřešeno

Napsal: 01 bře 2013 13:08
od Jsimi
Ahoj,
jelikož je téma zamčené, založil jsem nové. Skript funguje jak má, ale jen pokud hledá cestu, ve které zložky nemají v názvu mezeru. Pokud je v názvu mezera tak ukáže, že bude hledat správný soubor, ale pak vyhodí hlášku že ho nemůže nalézt a jestli je cesta správná.

Kód: Vybrat vše

   '****************************************************
'*   Skript otevírá xlsm soubor dle roku a měsíce   *   
'****************************************************
'*           Vytvořeno pro PC-HELP                  *
'*            Etienn@Script v 1.0                   *
'****************************************************

Option Explicit
Dim rok, mesic, fso, WshShell, File, prikaz

rok = Year(Now())
mesic = Month(Now())
Set fso = CreateObject ("Scripting.FileSystemObject")
Set WshShell = CreateObject ("WScript.Shell")
File = "C:\pokus a\" & rok & "\PR_" & mesic & ".xlsm"
' WScript.Echo File
If (fso.FileExists(File)) Then
prikaz = "excel.exe " & File
WshShell.Run prikaz
Else
  WScript.Echo("Soubor nenalezen!")
End If

Pokud hledá "C:\pokus\" & rok & "\PR_" & mesic & ".xlsm" tak je vše OK, ale pokud cesta bude takto
"C:\pokus a\" & rok & "\PR_" & mesic & ".xlsm" tak vyhodí chybu.
Kde může být problém?

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 15:12
od Azuzula
Tipnu si, že přímo v té mezeře ;)
Vyvarovala bych se všech mezer v názvu souborů a adresářů, mezery můžete nahradit třeba podtržítkem. Některé programovací jazyky prostě mezery neberou.
Teoreticky by se to mohlo dát obejít když se mezera nahradí znakem chr(32) což je ASCI kód mezery

"C:\pokus" & chr(32) & "a\"

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 15:38
od Jsimi
To nepomůže,
budu citovat hlašku "Soubor C:\pokus.xlsx nelze nalézt"
Pokud je cesta delší, tak se tato hláška objeví pro každou složku která obsahuje mezery. Prostě pokaždé když je tam mezera tak místo té mezery tam vloží .xlsx a hledá soubor který se jmenuje "prvníslovovnázvuzložky.xlsx"

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 15:58
od Mirdad69
no ten soubor to podle mě chápe jako dva parametry oddělené mezerou, co to zkusit dát celé do uvozovek?
""C:\pokus a\" & rok & "\PR_" & mesic & ".xlsm"" teď si nejsem jist, zda to tak stačí a nemusí se tam dát
"""C:\pokus a\" & rok & "\PR_" & mesic & ".xlsm"""

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 16:08
od Jsimi
V prvním případě vyhodí chybu hned, ve druhém napíše, že bude hledat ve správném umístění, ale pak napíše soubor nenalezen.

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 17:04
od Uziv00
Chceš-li mezery, není to až tak problém, ale kód ztratí přehlednost a navíc si budeš muset tvořit spouštění bez kontroly. (Proměnná File bude sloužit jen pro kontrolu souboru, ale nelze ji použít pro spuštění, tedy vlastně cestu budeš muset zadávat dvakrát.) Změň řádek začínající WshShell.Run takto:

Kód: Vybrat vše

WshShell.Run "excel.exe" & " " & """C:\pokus a\" & rok & "\pokus_" & mesic & ".xlsm"""

Upozorňuji, že pokud mezeru z cesty zase odstraníš, bude to vyhazovat chyby.

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 17:38
od Jsimi
Teď už to chodí. Ještě jednou díky.

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 17:42
od Uziv00
Není zač. Označ za vyřešené.

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 18:21
od Jsimi
Omlouvám se,ale přehlédl jsem dodatek stou mezerou. Jde o to, že cesta k souboru vypadá takto.
"G:\GROUPS\Departments\Provoz Steti\BP-Balici papiry\Veřejné\Hlášení mistři nové\PR\" & rok & "\PR_" & mesic & ".xlsm"
Tudíž někde jsou mezery a někde ne.

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 18:36
od Uziv00
To si děláš srandu ne? Tak na tohle si přijdi sám. A díky, dávám to k dobru jak někdo může pojmenovat adresář :lol:
Něco zkusím, ale nezaručuju výsledek :-)

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 19:08
od Uziv00
Tak nakonec jsem na to přišel :D Člověk se furt učí. Normálně bych s něčím takovým každýho poslal někam, ale pak mi došlo, že nějak to jít musí. A není to až tak složité.
uprav řádek příkaz a řádek WshShell.Run takto:

Kód: Vybrat vše

prikaz = "excel.exe" & " " & Chr(34) & File & Chr(34)
WshShell.Run prikaz

Jak si všimneš, tak proměnná File je opět ve hře, takže stačí změnit pouze ji.

Re: doplnění téma Skript na otevírání souboru .xlsm

Napsal: 01 bře 2013 21:58
od Jsimi
Dobrá práce. Moc dík