Excel - makro na smazání prázdných sloupců se záhlavím
Dobrý den, potřeboval bych vytvořit makro, které smaže veškeré sloupce, které obsahují pouze Záhlaví - v mém případě na dva řádky - to znamená, že každý sloupec, který má vyplněné pouze dvě buňky bude odstraněn.
Děkuji
Změna předmětu, původně: Excel - makro (host)
https://www.extendoffice.com/documents/excel/3685-excel-delete-empty-columns-with-header.html
V Tvojom prípade akurát musíš zameniť riadok v makre z hostovho linku:
za:
Super, děkuji, funguje.
Ještě prosím makro, které by v sešitu vyhledalo veškerá čísla ve formátu obecný 8,59416E+11
a převedlo na číslo 859415973741.
Děkuji.
Problémom je, že aj Tebou zmieňovaný tvar 8,59416E+11 je číslo, len je zobrazené vo vedeckej notácii i keď je nastavený všeobecný formát bunky.
Riešenie Tvojho problému závisí od toho, či v rámci tabuľky máš i iné stĺpce, kde by došlo k neželanej úprave formátu čísla, keby sa použilo makro na jednotný hromadný formát pre čísla.
Neviem o spôsobe, ako by sa dalo v bunke so všeobecným formátom zistiť, či je číselný obsah zobrazený štandardne alebo vo vedeckej notácii.
Preto sa nedá vyhľadať medzi bunkami v stĺpci konkrétna bunka, ktorá je zobrazená vo vedeckej notácii. Dá sa ale celý stĺpec skonvertovať na formát "číslo", čím sa zruší forma vedeckej notácie.
Takto by sa dala celá tabuľka prejsť, konkrétne kontrolou, či bunka v každom treťom riadku tabuľky (prvé dva riadky sú záhlavie) obsahuje číselnú hodnotu a ak áno, tak celý stĺpec skonvertuje na formát "číslo".
To ale znamená, že všetky číselné stĺpce budú mať jednotný formát, lebo nemôžem dopredu vedieť, ktorý stĺpec môže obsahovať vedeckú notáciu. Tým ale neviem dodržať, že v niektorom stĺpci by som chcel napr 12 miestne číslo bez desatinných miest ale v inom stĺpci by som chcel napr. číslo s oddeľovaním tisícov a na dve desatinné miesta.
Dalo by sa to riešiť tak, že podľa obsahu záhlavia by sa makro rozlíšilo, ktorý stĺpec by mal byť skonvertovaný na 12 miestne číslo (vlastný formát "0") a ktorý napr na dvojmiestne desatinné číslo s oddeľovaním tisícov (vlastný formát "# ##0,00") a pod...
Inou možnosťou je vhodný spôsob importu dát z externého zdroja tak, aby bol definovaný pre každý stĺpec požadovaný typ formátu
OK rozumím, tak se ještě zeptám na další makro, pogřebuju vycistit vzdy jiny sloupec od html kodu jako jaou a vše mezi <>, našel jsem nějakou funkci a ano jde to, ale nechci to řešit pomocí vzorce, chtěl bych makro, které když spustím, dá mi na výběr sloupec který chci vycistit a ok.
kód funkce, kterou jsem našel přikládám, jak z toho udělat makro bohužel nevím..
Daj tabuľku s ukážkou, či si mám vytvoriť dáta na skúšanie sám?
Omlouvám se, zde..
Čiže chceš makro, kde Ty určíš, ktorý stĺpec má prečistiť.
V module s Tvojou čistiacou funkciou doplň makro:
Spustením makra sa prečistí stĺpec, v ktorom sa práve nachádza aktívna bunka. Čiže nemusíš ani zadávať, o ktorý stĺpec Ti ide, stačí sa v ňom nachádzať.
Stĺpec sa čistí počínajúc tretím riadkom, keďže v prvých dvoch riadkoch máš záhlavie.
Pokiaľ si k makru priradíš klávesovú skratku, bude to najpohodlnejšie.
Super, moc děkuji, teď bych potřeboval makro, které najde všechny buňky s určitým obsahem, třeba https a nastaví jim zarovnání vlevo.. Zkoušel jsem .Find("http").HorizontalAlignment = xlLeft
Bobužel vzdy najde a zarovná doleva jen první nalezenou buňku
To je v poriadku. Čo si mu povedal, to Ti vrátil.
Povedal si mu: nájdi bunku obsahujúcu "http" a zarovnaj obsah doľava.
Našiel... samozrejme že prvú (ktorú mal nájsť - tretiu? Dvadsiatu prvú? Stopäťdesiatu šiestu?)... a zarovnal.
Kde si povedal, že toto má urobiť so všetkými bunkami, ktoré obsahujú "http" ?
Nikde... Proto se ptám jak to udělat, aby našel všechny?
A aj si rozmýšľal nad tým, čo som Ti poslal v predošlej domácej úlohe?
Tam predsa tiež bolo potrebné prejsť všetky bunky stĺpca, ktoré si chcel vyčistiť...
A tam máš i odpoveď.
Časť:
robí presne to, čo chceš: "prejdi všetky bunky v aktívnom stĺpci od tretieho po posledný riadok a všade vyčisti".
Žiaľ, ak ti to z tých riadkov nie je jasné, ťažko chcieť tvoriť vlastné makrá...
Nasledujúci kód Ti zarovná vľavo všetky bunky aktuálnej oblasti počínajúcej bunkou A1 (ak A1 nie je súčasťou aktuálnej oblasti, treba prispôsobiť alebo určiť požadovanú oblasť) obsahujúcou (teda nie rovnajúcou sa ale obsahujúcou) text "http":
Děkuji.