VBA - Hyperlinks.Add + Range nefunguje

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Luky333323 12. 2. 2024 10:04

Zdravím Vás,

chtěl bych vás poprosit o radu. Mám následující kód a při spuštění mi vyskakuje chyba 1004 "Application-defined or object-defined error" a v původním kódu mi vyskakuje také chyba 1004 ale "Method 'Range' of object '_Global' failed".

Oboje chyby přestanou vyskakovat ve chvíli, kdy buď smažu řádek pro vytvoření odkazu, nebo když kód procházím po krocích přes F8. (Přestane mi vyskakovat i když smažu Range, ale to asi není podstatné)

Nemám tušení, jak to opravit, nebo co je vlastně špatně.

Zde je kód:
Kód: Vybrat vše
ActiveSheet.Hyperlinks.Add Anchor:=Cells(3, 6), Address:="", SubAddress:="'" & Sheets(2).Name & "'" & "!A1"

ActiveSheet.Range("B1:H1,C2:D2,A2:B2,A3:B3,C3:D3,A5:B5,F3:H3").Select
        Selection.Merge


Předem moc děkuji
Luky333323
Kolemjdoucí

Odeslat příspěvekod Luky333323 22. 2. 2024 09:26

Ahoj,

měl bych doplnit nějaké informace? Jsem samouk a naprosto mi chybí základy VBA (pořád jen recykluji to co jsem se naučil dříve), takže pokud je můj dotaz hloupý, tak se omlouvám. Na internetu jsem hledal, ale jelikož nevím co je tu za problém, tak nevím jak mám formulovat dotaz. Většinou jsem našel pouze informace o tom jak udělat odkaz na oblast buněk. Našel jsem Workaround k mému problému, a to že stačí, když ty jednotlivé oblasti rozdělím do více řádků a potom spojím každou jednotlivou oblast. Ale do toho se mi nechce protože to jde určitě vyřešit i lépe, a nechci mít v kódu zbytečné řádky.
Luky333323
Kolemjdoucí

Odeslat příspěvekod bruco 22. 2. 2024 10:39

Ked najskor vykonam merge a odkaz vytvorim az nasledne, tak to funguje. Nestaci to ako riesenie?
bruco
Junior

Odeslat příspěvekod Luky333323 22. 2. 2024 10:53

Ahoj, taky mě to napadlo. Aktuálně se mi odkaz vytváří ve chvíli, kdy probíhá cyklus for, a vytváří mi jednotlivé listy (cca 50 listů). Pokud bych to smazal odtud, tak bych musel na konec přidat nový cyklus, který by už byl redundantní. Ale máš pravdu, že pokud nezjistím, co je špatně, tak to asi vyřeším takhle.

Jinak zde přidávám popis co můj kód dělá. Mám excel (obratová předvaha), který obsahuje zůstatky jednotlivých (účetních) účtů. Dle velikosti firmy je jich mezi 25 - 70. Potom mám excel s jednotlivými účetními pohyby pro každý účet z obratové předvahy. Dle velikosti firmy je tam mezi 500 - 7000 řádky. Já potom vytvořím nový excel, kde na první list hodím přehled jednotlivých účtů. Potom vytvořím tolik listů, kolik mám účtů. Zároveň z přehledu mi jde odkaz na jednotlivé listy, a z jednotlivých listů mi jde odkaz zpět na přehled. Potom už jen natahám jednotlivé pohyby z 2 excelu do nově vytvořených listů.
Luky333323
Kolemjdoucí


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků