Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Negatiivisten lukujen esto

LCHawk [06.11.2015 21:50:29]

#

Tehtävänä on siis tarkastaa (estää) negatiivisten lukujen työttäminen Excelin tietylle välilehdelle sekä ilmoittaa käyttäjälle, jos näin käy. Ohessa koodi, jota käytän asiaan:

Private Sub Worksheet_Change(ByVal Target As Range)
For i = 1 To Rows.Count
If Worksheets("Vh").Cells(i, Target.Column).Value < 0 Then
   MsgBox ("Negatiivinen arvo rivillä" & Target.Row)
   Worksheets("Vh").Cells(Target.Row, Target.Column) = "..."
   Exit For
End If
Next i
End Sub

Homma toimii hyvin niin kauan, kun käyttäjä ei syötä yhtään negatiivista lukua. Jos syöttää, koodi toimii kyllä senkin jälkeen oikein, mutta samalla koko Excel muuttuu lähes käyttökelvottoman hitaaksi käyttää. Miten tuon saisi tehtyä niin, ettei ko. työkirjan käyttö hidastuisi liikaa?

Lisäys:

Keskin jo itse ratkaisun. Ratkaisu on seuraava koodi:

Private Sub Worksheet_Change(ByVal Target As Range)
'For i = 1 To Rows.Count
If Worksheets("Vh").Cells(Target.Row, Target.Column).Value < 0 Then
   MsgBox ("Negatiivinen arvo rivillä" & Target.Row)
   Worksheets("Vh").Cells(Target.Row, Target.Column) = "..."
   'Exit Sub
End If
'Next i
End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta