Stránka 1 z 1
Jak ve VBA zadat konstantu (INPUT nefunguje) ?
Napsal: 28 črc 2020 11:16
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
Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?
Napsal: 28 črc 2020 12:34
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.
Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?
Napsal: 28 črc 2020 14:48
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.
Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?
Napsal: 28 črc 2020 14:52
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.
Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?
Napsal: 29 črc 2020 13:13
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
Re: Jak ve VBA zadat konstantu (INPUT nefunguje) ?
Napsal: 29 črc 2020 20:05
od atari
Tohle už napohled vypadá inteligentněji...
Díky