Kezdőlap › Fórumok › Excel programozás › [Resolved] inputbox hiba
- This topic has 9 hozzászólás, 3 résztvevő, and was last updated 3 years, 10 months telt el by verax.
-
SzerzőBejegyzés
-
2021-01-20-22:03 #8160
Az inputbox ha megjelenik és nem számot-integer-t írok az rendben van.
Azt szeretném elérni, ha nem írok be semmit és OK, Mégse vagy az x bezárás gombra kattintok ne dobjon hibát!
Köszönöm!Private Sub CommandButton2_Click() Dim sor As Integer Dim Jaavsor As Integer Jaavsor = Application.InputBox("Melyik sort javítsam?:", Type:=1) ActiveSheet.Cells(Jaavsor + 2, 3).Select sor = ActiveCell.Row oszlop = ActiveCell.Column modosit = Cells(sor, oszlop) eee = Range(Cells(sor, oszlop), Cells(sor, oszlop + 12)).Address ActiveSheet.ScrollArea = eee Range(eee).Interior.ColorIndex = 4 MsgBox "Most javíthatsz a kiválasztott sorban! " FormBevitel.Hide End Sub
2021-01-20-22:06 #8161Üdv mindenkinek!
Bocsi a megszólítás lemaradt!2021-01-20-22:33 #8162Szia!
Ugyan nem írtad le, hogy melyik soron ad hibát, de tippem szerint az Inputboxos sor utáni lesz az.
Az Inputbox és az Application.Inputbox szöveges adatot ad vissza, tehát azt, amit beírtál, szövegként.
ha nem írsz semmit, akkor üres sztringet ad vissza, ami dupla macskaköröm ügye.A Jaavsor változóban tehát ez lesz, és nem fog tudni hozzáadni kettőt.
Ellenőrizd a Jaavsor változó tartalmát, mielőtt továbbmennél, és a maradék kódot csak akkor csináltasd meg vele, ha a Jaavsor változó <> „”
Imre
2021-01-20-23:35 #8164Sziasztok!
Nekem ez működik:Private Sub CommandButton2_Click()
Dim Jaavsor
Dim eee
On Error Resume Next
Jaavsor = Application.InputBox(„Melyik sort javítsam?:”)
If Jaavsor = „” Then
Unload FormBevitel
Exit Sub
ElseIf Jaavsor > 0 Then
eee = Range(Cells(Jaavsor + 2, 3), Cells(Jaavsor + 2, 15)).Address
ActiveSheet.ScrollArea = eee
Range(eee).Interior.ColorIndex = 4
MsgBox „Most javíthatsz a ” & Jaavsor + 2 & „. sorban! ”
End If
Unload FormBevitel
End Subüdvözlettel
verax2021-01-20-23:56 #8165… és egy kis magyarázat
Option Explicit – Segít a hibakeresésben.
A Dim sor as Integer felesleges, mert a Jaavsor tökéletesen helyettesíti.
A Jaavsor-nak szándékosan nem adtam típust, mert az InputBox-nak többféle értéktípust adhatsz.
Igen, látom, tudom… ott van a Type:=1! Na, pont az okozza a problémát.
Dim eee nem volt definiálva.
On Error Resume Next – Hiba esetén, ne problémázz! Bízz bennem! Kezelni fogom.
InputBox: Ha nem határozod meg típuskódot, akkor elfogadja a NULL visszatérési értéket is. Tehát nem fog problémázni a ki nem töltött beviteli mező miatt.
…és akkor most, ahogy ígértem, kezelem a hibát: If … Then … ElseIf … Then … End If
A végére pedig egy utolsó módosítás. FormBevitel.Hide helyett Unload FormBevitel. Az előbbi utasítás csupán elrejti az űrlapot, de továbbra is tárolja a memóriában, míg az utóbbi a memóriát is felszabadítja.üdvözlettel
verax2021-01-21-16:11 #8175Köszönöm verax!
Valóban jó amit csináltál!
A form elrejtése szándékos volt, hogy ott folytassa ahol abbahagyta az illető!
Még egyszer köszönöm!2021-01-21-16:15 #8176Imi neked is köszönöm!
Jól látod a dolgot, majd kipróbálom!2021-01-21-17:36 #8177Ez lett a végleges!
Még egyszer köszönöm mind kettőtöknek!Private Sub CommandButton2_Click() Dim Jaavsor Dim eee On Error Resume Next Jaavsor = Application.InputBox("Melyik sort javítsam?:") If Not IsNumeric(Jaavsor) Or Jaavsor = "" Then MsgBox "Nem írtál be semmit, vagy nem számot írtál!" Unload FormBevitel Exit Sub ElseIf Jaavsor > 0 Then eee = Range(Cells(Jaavsor + 2, 3), Cells(Jaavsor + 2, 15)).Address ActiveSheet.ScrollArea = eee Range(eee).Interior.ColorIndex = 4 MsgBox "Most javíthatsz a " & Jaavsor & ". sorban! " End If Unload FormBevitel End Sub
2021-01-21-19:34 #8180Klassz! 🙂
2021-01-21-21:37 #8182Örülök, hogy tovább gondoltad a javaslatomat 🙂 Nekem is tetszik!
üdv
verax -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.