Excel - VBA Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Pavel123
Level 1
Level 1
Příspěvky: 91
Registrován: prosinec 06
Pohlaví: Nespecifikováno
Stav:
Offline

Excel - VBA  Vyřešeno

Příspěvekod Pavel123 » 29 pro 2006 19:59

Dobrý den,
nevíte někdo jak vnutit excelu stringovou proměnou jako název objektu?
Něco jako tohle nefunguje

DIM strNazevObjektu As String
DIM obj As object

strNazevObjectu = Range("A1").Value

Set obj = strNazevObjectu

Nefunguje to ani s proměnou typu variant
Dík za radu
Pavel

Reklama
Uživatelský avatar
Ltb
Administrátor
Master Level 8.5
Master Level 8.5
Příspěvky: 6779
Registrován: únor 03
Bydliště: Praha západ
Pohlaví: Muž
Stav:
Offline
Kontakt:

Příspěvekod Ltb » 29 pro 2006 21:11

Ahoj, ve VBA dělám spíše základní úkony, ale...tvůj kód mi připadá zvláštní. Přiřazuješ objektu hodnotu string. Myslím si, že by to mohlo jít přes vlastnosti objektu. Pokud lze změnit jméno objektu, půjde to přes vlastnosti (properties). Bohužel, víc toho o objektech ve VBA nevím.

Namísto Set obj = strNazevObjectu bych použil něco jako SetName(obj) = strNazevObjectu

Pavetta
nováček
Příspěvky: 33
Registrován: srpen 06
Pohlaví: Nespecifikováno
Stav:
Offline

Příspěvekod Pavetta » 30 pro 2006 01:09

Záleží na tom, o jaký typ objektu jde. jestli je to fakt jen Object. U většiny objektů ve VBA přiřazuješ nějakým takovým způsobem obj.Name=string. Záleží na properties každého typu objektu.

Pavel123
Level 1
Level 1
Příspěvky: 91
Registrován: prosinec 06
Pohlaví: Nespecifikováno
Stav:
Offline

Příspěvekod Pavel123 » 30 pro 2006 05:32

No, jde mi o to, že nechci objektu přiřadit hodnotu string ale objekt
jehož název je v promené string. Mám např. 10 textboxů a kód má
pracovat s textboxem jehož name je v bunce A1. Zatím to řeším

Select Case Range("A1").Value
Case "txbOkno1"
set obj = txbOkno1
Case "txbOkno2"
set obj = txbOkno2

ale je to dost nepohodlné

Pavetta
nováček
Příspěvky: 33
Registrován: srpen 06
Pohlaví: Nespecifikováno
Stav:
Offline

Příspěvekod Pavetta » 31 pro 2006 11:32

Jo, mám to. U textboxu se to dá takhle:

Dim txb As Control
Set txb = UserForm1.Controls("jméno, nebo string z buňky")

Pavetta
nováček
Příspěvky: 33
Registrován: srpen 06
Pohlaví: Nespecifikováno
Stav:
Offline

Příspěvekod Pavetta » 31 pro 2006 13:30

Ještě to upřesním

Dim txb As Control
Set txb = UserForm1.Controls("jméno, nebo string z buňky")

Ten userform1 je můj pracovní formulář, ty si tam zadej ten, co máš.

Dim txb As Control
Set txb = UserForm1.Controls(Range("A1"))

Bacha ale na velká a malá písmena. Fungovalo mě to jako case sensitive.

Pavel123
Level 1
Level 1
Příspěvky: 91
Registrován: prosinec 06
Pohlaví: Nespecifikováno
Stav:
Offline

Příspěvekod Pavel123 » 01 led 2007 15:25

Díky za radu a nápad akorát mi to nefunguje jako Control
udělal jsem to takhle:
Dim txb As Object
Set txb = ActiveSheet.OLEObjects(Range("A1").Value).Object
Pavel


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4705
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12131
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4433
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41
  • Excel - výpočet nočních hodin Příloha(y)
    od Uziv00 » 17 říj 2024 11:22 » v Kancelářské balíky
    3
    3275
    od lubo. Zobrazit poslední příspěvek
    24 říj 2024 00:00
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » 24 dub 2025 10:51 » v Kancelářské balíky
    5
    3889
    od atari Zobrazit poslední příspěvek
    26 dub 2025 09:11

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti