07. november 2006 - 18:57Der er
14 kommentarer og 1 løsning
excel - flyt markør efter instast af værdi 1 til 6
jeg har et skema som skal udfyldes med en data. derved har ejg brugt excel til optælling og beregninger. I det ene arks kode har jeg har noget script til at skifte linie ved kolonne R, ser således:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("R:R")) Is Nothing Then Cells(Target.Row + 1, 1).Select ' vælger næste række i A kolonnen End If End Sub
det virker fint. Men nu vil jeg have det sådan at man kan kun kan indtaste éet tal fra 1 til 6. Når tallet er tastet skal markøren hoppe videre til højre og ved række R skal den skifte linie ligesom den overstående kode..
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:C600")) Is Nothing Then ' ret ovenstående til indtastningsområdet If Not IsNumeric(Target) Then Target = "" MsgBox " indtast tal" Target.Select End If End If End Sub
Overståene virker så man kun kan indtaste tal og ikke bugstavger, men jeg har brug for der kun kan indtastes fra tallet 1 til 6,ikke alle tal.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:C600")) Is Nothing Then ' ret ovenstående til indtastningsområdet If Not IsNumeric(Target) Or Target > 6 Or Target < 1 Then Application.EnableEvents = False Target = "" MsgBox " indtast tal ( 1 - 6 )" Target.Select End If Application.EnableEvents = True
Private Sub Worksheet_Change(ByVal target As Range) If Not Intersect(target, Range("A2:r600")) Is Nothing Then ' ret ovenstående til indtastningsområdet If Not IsNumeric(target) Or target > 6 Or target < 1 Then Application.EnableEvents = False target = "" MsgBox " indtast tal ( 1 - 6 )" target.Select End If Application.EnableEvents = True target.Offset(0, 1).Select' flytter 1 celle til højre End If End Sub
Private Sub Worksheet_Change(ByVal target As Range) If Not Intersect(target, Range("A2:r600")) Is Nothing Then ' ret ovenstående til indtastningsområdet If Not IsNumeric(target) Or target > 6 Or target < 1 Then Application.EnableEvents = False target = "" MsgBox " indtast tal ( 1 - 6 )" target.Select Application.EnableEvents = True Exit Sub End If
target.Offset(0, 1).Select End If End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.