Stránka 1 z 1
Excel-jak smazat neviditelná textová pole (mnoho)??
Napsal: 27 říj 2010 11:54
od d1amond
Zdravím, řeším takový oříšek. V Excelu /2007/ mám vytvořený nějaký formulář a je hrozně pomalý. Nějakej doveda do něj nasekal hodně, ale opravdu hodně text. polí, které najdu nahodným najetím myši. Nevíte někdo, jak tyto objekty zobrazit, označit a najednou smazat?
Re: Excel-jak smazat neviditelná textová pole (mnoho)??
Napsal: 27 říj 2010 13:03
od navstevnik
Tato procedura ve standardnim modulu vypise do Immediate Window seznam a umisteni textovych poli na formulari (zmenit nazev frm):
Kód: Vybrat vše
Option Explicit
Sub UkazTP()
Dim CtrlTB As Control
For Each CtrlTB In UserForm1.Controls
With CtrlTB
Debug.Print .Name; " "; .Left; " "; .Top
End With
Next CtrlTB
End Sub
V navrhu frm:
Uprav rozmery frm, pokud jsou textova pole mimo.
V Property Window v rozbalovaci polozce vyber textove pole urcene ke smazani, presun tahem mysi do vhodne polohy (jsou-li text pole na sobe) a Delete.
Re: Excel-jak smazat neviditelná textová pole (mnoho)??
Napsal: 02 lis 2010 12:36
od d1amond
Stačilo by to jednodušeji. Všechna textová pole vymazat. Na nic se neptat, neukazovat je, prostě to vyčistit. Jak tu proceduru pustím a kam ji umístím?
Re: Excel-jak smazat neviditelná textová pole (mnoho)??
Napsal: 02 lis 2010 16:11
od navstevnik
Ovladaci prvky vlozene do UserForm v rezimu navrhu nelze odstranit procedurou VBA, je nutno je odstranit stejne, jako byly vkladany, tedu rucne.
Proto je navrzena procedura, ktera udela inventuru ( v editoru VBA - Alt+F11 - vlozit do standardniho modulu, upravit nazev UserForm (zvyrazneno) v radku:
...
For Each CtrlTB In UserForm1.Controls
...
. otevrit okno Immediate Window: menu VBA - View>klik na Immediate Window a spustit proceduru F5 (kurzor musi byt na libovolnem radku procedury).
Dalsi postup jak bylo uvedeno drive.
Pokud je tento postup neprekonatelne slozity (bohuzel nic jednodussiho pro selektivni odstraneni nepotrebnych textboxu neni, zvlaste pokud je jejich poloha mimo okraj formulare a jsou poskladany na sebe), pak nezbyva nez navrhnout UserForm znova a nhradit jim puvodni.