< návrat zpět
MS Excel
Téma: Verze souboru ![rss](./plugins/templates/wall_2C/images/icons/rss.png)
Zaslal/a Milan158 7.5.2016 15:26
Ahoj,
potřebuji zjišťovat verzi ze zavřeného souboru. Je to normální číslo v buňce a používal jsem na to tento příkaz: Private Function ZiskejVerzi(ByVal Cesta, ByVal Soubor, ByVal List, ByVal Bunka) As Integer
Dim arg As String
If Right(Cesta, 1) <> "\" Then Cesta = Cesta & "\"
If Dir(Cesta & Soubor) = "" Then
ZiskejVerzi = 777
Exit Function
End If
arg = "'" & Cesta & "[" & Soubor & "]" & List & "'!" & _
Range(Bunka).Range("A1").Address(, , xlR1C1)
ZiskejVerzi = ExecuteExcel4Macro(arg)
End Function
Ale u některých kolegů to na tomto kódu havaruje.
Takže mně napadlo, že bych tu verzi psal do některého atributu či tagu souboru: když se na soubor v průzkumníku klikne pravou myší, zvolí se Vlastnosti a pak karta Podrobnosti, tak je tam nabídka několika políček, kde by se dalo zapsat celé číslo do 1000. Dokonce tam je i políčko verze, ale toto není vždy přístupné.
Umí se VBA na tyto podrobnosti nějak dostat?
Anebo jak jinak (spolehlivě) číst verzi u zavřeného souboru?
Předem děkan ![1](./plugins/templates/wall_2C/images/smileys/1.gif)
![elninoslov](./pictures/avatars/5a6387658a0f4.jpg)
Na ktorom riadku to havaruje, a čo to píše ? Nenatiahne sa iná hodnota ako Integer ?
citovat
Milan158(7.5.2016 18:44)#031421 ![avatar](./pictures/avatars/no-avatar.jpg)
Na tom posledním
ZiskejVerzi = ExecuteExcel4Macro(arg)
Prostě Err je v tomto okamžiku <>0
Zajímavé je, že z deseti kolegů to nejede tak jednomu-dvěma. Ale i to stačí, aby to výrazně poškodilo důvěryhodnost jinak skvělého nástroje
citovat
Anonym(7.5.2016 22:39)#031425 ![avatar](./pictures/avatars/no-avatar.jpg)
třeba
Dim xlApp As New Excel.Application
ZiskejVerzi = xlApp.ExecuteExcel4Macro(arg)citovat
Anonym(7.5.2016 22:44)#031428
![elninoslov](./pictures/avatars/5a6387658a0f4.jpg)
Najrýchlejšie, najčistejšie, najjednoduchšie riešenie bude, ak si na získanie tejto hodnoty vyčleníte jednu bunku na liste, alebo skrytý list. Makrom tam vložíte patričný vzorec za 0,1 sek, a za ďalšie 0,1 sek máte výsledok. S tým ďalej pracujete vo vzorcoch či makrách. Odporúčam túto možnosť - nazývam to "dolovacia" bunka.
citovat
Milan158(8.5.2016 10:05)#031435 ![avatar](./pictures/avatars/no-avatar.jpg)
OK, ručne to funguje.
Ale i u tohoto mám obavu, lebo aktualizácia trvá niekedy aj 4 sekundy.
Môžem síce dať do kódu Wait, ale čo ak sa to (napr. krátkodobý výpadok internetu...) nestihne tak rýchlo zaktualizovať?
citovat
![elninoslov](./pictures/avatars/5a6387658a0f4.jpg)
Pri výpadku internetu ale nebude predsa fungovať žiadna možnosť. Nechce sa mi to teraz testovať, len hypotéza, ale tá bunka so vzorcom nehodí chybu #ODKAZ keď nenájde zdroj ?
citovat