Používam program Excel 2010 a pridávam malé makro VBAdo tabuľky. (Účelom makra je zobrať údaje z aktívneho hárka a exportovať ich do súboru CSV, ale to je tangenciálne k otázke.) Makro určuje výstupnú cestu k súboru pomocou ThisWorkbook.Path
. Na panel nástrojov Rýchly prístup som tiež pridal vlastné tlačidlo na aktiváciu makra.
Po získaní funkčného algoritmu na mieste v mojomexperimentálna tabuľka (Test.xlsm, uložená v jednej ceste), vytvoril som kópiu tabuľky v inej ceste a premenoval som ju na _Database.xlsm. Potom som otvoril súbor _Database.xlsm a spustil makro. Na moje prekvapenie bol súbor zapísaný na pôvodnú cestu, nie na novú. A pri pohľade dolu na panel s nástrojmi Windows som videl, že program Excel otvoril pôvodný súbor tiež na pôvodnej ceste.
Po dlhom blúdení s vylepšeniami kódukontrola vlastností a podobne som nakoniec zistil, že tomu môžem zabrániť otvorením skopírovanej tabuľky, odstránením tlačidla panela nástrojov Rýchly prístup, opätovným pridaním a následným uložením súboru. Moje otázky sú:
Prečo nie je makro „samostatne prenosné“ spolu s tabuľkou? Teda prečo si kópia zachováva tento druh väzby na pôvodný list?
Existuje spôsob, ako môžem vytvoriť alebo upraviť makro tak, aby bolo v tomto zmysle prenosné?
odpovede:
1 pre odpoveď č. 1Ak chcete, aby panel s nástrojmi cestoval s asúbor (tj. nie vždy odkaz späť na pôvodnú verziu), musíte ho pridať do samotného súboru, nie do QAT. QAT „vie“ iba skutočný súbor, s ktorým ste prepojili tlačidlo.
Môže byť lepšie pridať makro do osobného zošita s makrami a potom ho nechať len pracovať s ActiveWorkbookom.
Ak ho však chcete distribuovať ďalším používateľom, môžete makro ponechať v zošite „databázy“ a pridať vlastnú časť pásky. Pozri: http://www.rondebruin.nl/win/s2/win001.htm