< návrat zpět
MS Excel
Téma: Verze souboru
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
Na ktorom riadku to havaruje, a čo to píše ? Nenatiahne sa iná hodnota ako Integer ?
citovat
Milan158(7.5.2016 18:44)#031421 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 třeba
Dim xlApp As New Excel.Application
ZiskejVerzi = xlApp.ExecuteExcel4Macro(arg)citovat
Anonym(7.5.2016 22:44)#031428
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 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
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