Jak ve VBA zadat konstantu (INPUT nefunguje) ?

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

Moderátor: Mods_senior

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3202
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Jak ve VBA zadat konstantu (INPUT nefunguje) ?

Příspěvekod atari » 28 črc 2020 11:16

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

Reklama
Zivan
Level 5
Level 5
Příspěvky: 2444
Registrován: leden 10
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod Zivan » 28 črc 2020 12:34

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: 3202
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod atari » 28 črc 2020 14:48

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
Level 5
Příspěvky: 2444
Registrován: leden 10
Pohlaví: Nespecifikováno
Stav:
Offline

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

Příspěvekod Zivan » 28 črc 2020 14:52

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: 369
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod elninoslov » 29 črc 2020 13:13

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: 3202
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod atari » 29 črc 2020 20:05

Tohle už napohled vypadá inteligentněji... :thumbup:
Díky


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Ethernet nefunguje
    od CowanCZ » 03 bře 2024 12:11 » v Internet a internetové prohlížeče
    10
    1316
    od xCloudGirl Zobrazit poslední příspěvek
    05 bře 2024 17:40
  • Nefunguje klavesnica
    od Ivikivi » 25 pro 2023 07:54 » v Problémy s hardwarem
    2
    563
    od petr22 Zobrazit poslední příspěvek
    25 pro 2023 10:15
  • Outlook app nefunguje
    od WangJason97 » 31 srp 2023 11:19 » v Mobily, tablety a jiná přenosná zařízení
    0
    1642
    od WangJason97 Zobrazit poslední příspěvek
    31 srp 2023 11:19
  • Router nefunguje.
    od urbassscz » 07 kvě 2023 21:27 » v Problémy s hardwarem
    5
    1015
    od ITCrowd Zobrazit poslední příspěvek
    08 kvě 2023 19:03
  • Nefunguje bezdrátová myš
    od Pidek » 01 kvě 2023 14:07 » v Problémy s hardwarem
    1
    648
    od mmmartin Zobrazit poslední příspěvek
    01 kvě 2023 17:12

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

Kdo je online

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