Jak ve VBA zadat konstantu (INPUT nefunguje) ?

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Odpovědět
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3375
Registrován: 24 říj 2008 19:50

Jak ve VBA zadat konstantu (INPUT nefunguje) ?

Příspěvek od atari »

Níže uvedený kód se zastaví na chybě, že je chyba v definici objektu. Jakmile číslo zadám příkazem "Sloupec = 5", tak kód funguje bez chyb.

Má pro to někdo vysvětlení?

Kód: Vybrat vše

Sub test()

Sloupec = InputBox("Číslo sloupce, kam se má zapsat hodnota")
'Sloupec = 5
Cells(1, Sloupec) = 99

End Sub
Zivan
Level 5.5
Level 5.5
Příspěvky: 2730
Registrován: 05 led 2010 12:08

Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?

Příspěvek od Zivan »

VBA vubec neumim, ale nebude problem v datovem typu?

Tedy ze se to snazis nacpat do Cells(1, "5")

Edit:
S pomoci Googlu bych to prepsal na:

Kód: Vybrat vše

Sub test()

Sloupec = Application.InputBox("Číslo sloupce, kam se má zapsat hodnota", Type:=5)
'Sloupec = 5
Cells(1, Sloupec) = 99

End Sub
Mozna bys jeste pred vlozenim te hodnoty mohl zjistovat, jestli je ve Sloupec cislo, kdyz misto zadani zmacknes ESC, tak tam nic nebude a kod spadne.
HP Elitebook 845 G8 (Ryzen 5650U, 32GB RAM, WD SN570 1TB, 14" fullHD IPS) + HP USB-C G5 Essential + 29" LG 29UM65 + 22" Eizo S2202W
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3375
Registrován: 24 říj 2008 19:50

Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?

Příspěvek od atari »

Ve Sloupci je číslo. Pokud například udělám matematickou operaci například "Sloupec/2" tak se provede korektně, Takže evidentně je zadáno číslo.

Ale asi je problém v datovém typu. Když dám deklaraci "Dim Sloupec As Integer", tak už to začne fungovat.

Ale to "Application.InputBox" funguje i bez té deklarace. Takže dík za tip.
Zivan
Level 5.5
Level 5.5
Příspěvky: 2730
Registrován: 05 led 2010 12:08

Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?

Příspěvek od Zivan »

Kdyz udelas matematickou operaci (pouziva se *1), tak to VBA asi automaticky konvertuje, ale u Cells to udelat nemusi.

Hlavne ze to funguje.
HP Elitebook 845 G8 (Ryzen 5650U, 32GB RAM, WD SN570 1TB, 14" fullHD IPS) + HP USB-C G5 Essential + 29" LG 29UM65 + 22" Eizo S2202W
Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 386
Registrován: 12 čer 2013 23:40

Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?

Příspěvek od elninoslov »

Kód: Vybrat vše

Sub test()
Dim Sloupec As Integer
    On Error Resume Next
    Sloupec = Application.InputBox("Číslo sloupce, kam se má zapsat hodnota", Type:=5)
    On Error GoTo 0
    If Sloupec = 0 Then MsgBox "Chyba !", vbCritical: Exit Sub
    Cells(1, Sloupec) = 99
End Sub
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3375
Registrován: 24 říj 2008 19:50

Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?

Příspěvek od atari »

Tohle už napohled vypadá inteligentněji... :thumbup:
Díky
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Nefunguje nová PC
    od adoyss » » v Problémy s hardwarem
    7 Odpovědi
    5978 Zobrazení
    Poslední příspěvek od martanius
  • Lenovo S-130 nefunguje touchpad
    od mk7605 » » v Problémy s hardwarem
    21 Odpovědi
    6708 Zobrazení
    Poslední příspěvek od mk7605
  • T490s nefunguje trackpoint UPDATE
    od Sadelník1234 » » v Problémy s hardwarem
    3 Odpovědi
    4056 Zobrazení
    Poslední příspěvek od kecalek
  • USB-C hub nefunguje na jednom ASUS notebooku s Thunderbolt 4, na jiném ano
    od Atjov1 » » v Problémy s hardwarem
    10 Odpovědi
    7730 Zobrazení
    Poslední příspěvek od Atjov1

Zpět na „Kancelářské balíky“