< návrat zpět

MS Excel


Téma: Informace o propojení sešitu rss

Zaslal/a 10.6.2018 18:57

Vzpomínám si, že v objektovém modelu Excelu existují nejméně dvě kolekce s informacemi o propojeních sešitu. Už den se marně pokouším vzpomenout si, jak se jmenují. Pomůže mi někdo?

Zaslat odpověď >

#040669
avatar
Dvě? Ve skutečnosti míst, kde se mohou objevit propojení jinam, je nespočet. A co je horší, VBA podporuje velmi často jen informaci "je/není", ne výpis "kde a kam".

Sub ExterniOdkazy()

Dim blnExtLinkyVzorce As Boolean
Dim blnExtLinkyOLE As Boolean
Dim blnExtLinkyQuery As Boolean
Dim blnExtLinkyXML As Boolean
Dim blnExtLinkyRef As Boolean

Dim wshList As Worksheet

'jsou v sešitu externí odkazy?

'odkazy ze vzorců
blnExtLinkyVzorce = Not IsEmpty(ActiveWorkbook.LinkSources(xlExcelLinks))

'odkazy typu OLE, resp. DDE (vložené objekty)
blnExtLinkyOLE = Not IsEmpty(ActiveWorkbook.LinkSources(xlOLELinks))

'odkazy ve formě dotazů (SQL, web, databáze)
For Each wshList In ActiveWorkbook.Worksheets
If wshList.QueryTables.Count > 0 Then
blnExtLinkyQuery = True
Exit For
End If
Next wshList

'odkazy v podobě dat XML
blnExtLinkyXML = ActiveWorkbook.XmlMaps.Count > 0

'odkazy v podobě referencí z VBA
blnExtLinkyRef = False
With ActiveWorkbook.VBProject.References
For i = 1 To .Count
If Right(.Item(i).FullPath, 3) Like "xl?" Then
blnExtLinkyRef = True
Exit For
End If
Next i
End With

SesitObsahujeExtOdkazy = blnExtLinkyVzorce Or blnExtLinkyOLE Or _
blnExtLinkyQuery Or blnExtLinkyXML Or blnExtLinkyRef

End Sub
citovat
#040670
avatar
Petře, mně tentokrát šlo o ty LinkSources. S tím, že propojení mohou ležet i jinde, jsem se dost obíral a s řadou takových míst si poradit umím. Ale na ty LinkSources jsem si nebyl stavu vzpomenout. Dík za pomoc!citovat
#040678
avatar
V sešitě, který v kopiích putuje mezi řadou uživatelů, se po řadě měsíců intenzivního využívání náhle objevila žádost na aktivaci propojení. Zdrojový sešit, o který se jedná, opravdu k agendě nepatří a dostal se tam zjevně omylem. Protože se ten zdroj nachází v kolekci LinkSources(xlExcelLinks), hledal jsem ho jako součást odkazu ve vzorcích sešitu. K mému překvapení jsem ho neobjevil. Prohlédl jsem neúspěšně i názvy (Names) a seznam volatelných maker. Kde ještě by se mohl vyskytovat název souboru, který je evidován v kolekci LinkSources(xlExcelLinks)?citovat
#040679
avatar
Všude, kde může být odkaz:
grafy, podmíněné formáty, obrazce, ............citovat
icon #040680
eLCHa
Pokud nelze najít propojení, ale sešit si ho žádá - asi bych se zkusil kouknout přímo do xml.

Něco podobného jsem tady kdysi řešil:http://wall.cz/index.php?m=topic&id=29815&page=2#post-30203citovat
#040681
avatar
Dík za tipy. Sešit je napsán tak, aby do něj nikdo vlastní objekty typu grafů nebo obrazců nevkládal. Zajímavý tip jsou podmíněné formáty, které mne nenapadly. Pochybuji však, že by se někdo z uživatelů toho sešitu do podobného dobrodružství pouštěl. Možné to ale je!
Hledání pomocí xml je zřejmě správná cesta, ale má své velké "ale". Pokud mám pomocí xml prohledávat konkrétní list, pak těch listů má příslušný sešit v této chvíli celkem 146 a s výjimkou jeho tří VeryHidden listů jsou v podezření všechny ostatní. Tak to je tedy náruč práce!
Zatím jsem zvolil pohodlnější cestu. Kromě vstupní žádosti o řešení otázky propojení nemá to nedostupné propojení žádný vliv na chod sešitu. Nastavil jsem proto sešit do režimu, kdy se sešit ani neptá, ani se nepokouší žádná propojení aktualizovat. Uživatelsky je tak sešit v pohodě.
Samozřejmě jsem jen strčil hlavu do písku, aby problém nebylo vidět, když nikomu neškodí. Věřím, že časem objevím, kde je problém zakletý.citovat
#040683
avatar
Ten počet listů není zásadní problém.

Doporučuji obrátit se k příkazové řádce a zkusit FINDSTR

(případně HELP také může programátora inspirovat)citovat
#040684
avatar
Pokud do sešitu lze kopírovat, tak je to otázka času, kdy se něco objeví.

Problém možná neškodí, často ale zdržuje.citovat
#040731
avatar
@eLCHa
ve xml jsem ten vzdálený odkaz našel na tom nejpravděpodobnějším listu ze 146, i když na dost zvláštním místě zcela na jeho konci. Musím si ale najít nějaký vhodný editor, kde bych lépe viděl logiku xml. V té podobě, jak jsem si to zobrazil, nic rozumně editovat nejde. Každopádně dík, vím kde to leží.citovat
#040741
avatar
Na XML hodně solidní editor.. vesměs jsou placené. Ale nevidím důvod, proč si to neotevřeš třeba v Notepad++ se syntaxí XML. A fajn jsou i nástroje, které ti umí zarovnat kód. Od boku tuším, že mají v názvu "Tidy, Tidy HTML".citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

odpocet a storno tl.

PavDD • 28.3. 8:53

odpocet a storno tl.

Začátečník • 26.3. 14:39

odpocet a storno tl.

PavDD • 26.3. 10:22

odpocet a storno tl.

elninoslov • 26.3. 7:50

odpocet a storno tl.

PavDD • 26.3. 7:26

odpocet a storno tl.

elninoslov • 25.3. 22:34

odpocet a storno tl.

Začátečník • 25.3. 15:09