Page 1 of 1

กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Tue Oct 13, 2015 11:30 am
by Nat072
ต้องการสร้างปุ่มกด ให้กระโดดข้ามไปอีกตาราง โดยให้ไปอยู่ที่ เซลล่าสุด
เขียนคำสั่งยังไง ช่วยแนะนำด้วยครับ. แนบ File ตัวอย่าง

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Tue Oct 13, 2015 6:48 pm
by snasui
:D แนบ VBA มาในไฟล์ด้วยจะได้ช่วยดูให้ได้ครับ

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Tue Oct 13, 2015 7:10 pm
by Nat072
ตอนนี้ ปุ่ม 1, 2, 3, Undo, Del ของแต่ละตารางเขียนไว้แล้วครับ
แต่ปุ่ม ลูกศร 1, 2, 3 ที่จะให้กระโดดไปอีกตาราง เขียนไม่เป็นครับ :cry: :cry: :cry:

ตัวอย่าง :-

Code: Select all

Sub Oval1_Click()
    ActiveCell.Value = "1"
    If ActiveCell.Row = 5 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 6 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 7 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 8 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 9 Then
            ActiveCell.Offset(-4, 1).Select
    End If

End Sub
Sub Oval2_Click()
ActiveCell.Value = "2"
    If ActiveCell.Row = 5 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 6 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 7 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 8 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 9 Then
            ActiveCell.Offset(-4, 1).Select
    End If
End Sub
Sub Oval3_Click()
ActiveCell.Value = "3"
    If ActiveCell.Row = 5 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 6 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 7 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 8 Then
            ActiveCell.Offset(1, 0).Select
    ElseIf ActiveCell.Row = 9 Then
            ActiveCell.Offset(-4, 1).Select
    End If
End Sub
Sub SnipDiagonalCornerRectangle4_Click()
    If ActiveCell.Row < 5 Then Exit Sub
    If ActiveCell.Row = 5 Then
         ActiveCell.ClearContents
         ActiveCell.Offset(4, -1).Select
    ElseIf ActiveCell.Row = 6 Then
         ActiveCell.ClearContents
         ActiveCell.Offset(-1, 0).Select
    ElseIf ActiveCell.Row = 7 Then
         ActiveCell.ClearContents
         ActiveCell.Offset(-1, 0).Select
    ElseIf ActiveCell.Row = 8 Then
         ActiveCell.ClearContents
         ActiveCell.Offset(-1, 0).Select
    ElseIf ActiveCell.Row = 9 Then
         ActiveCell.ClearContents
         ActiveCell.Offset(-1, 0).Select
   
    End If

End Sub
Sub Can5_Click()
        Range("c5:e9").ClearContents
    If ActiveCell.Row <> 5 Then
        Cells(5, 3).Select
    Else
        ActiveCell.Offset(0, 1).Select
    End If

End Sub

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Tue Oct 13, 2015 7:15 pm
by snasui
:D การโพสต์ Code ให้ทำตามกฎการใช้บอร์ดข้อ 5 ด้านบน ผมแนะนำไว้แล้วว่าให้โพสต์ในลักษณะใดครับ :roll:

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Tue Oct 13, 2015 7:24 pm
by Nat072
แก้ใหม่แล้วครับ อาจารย์.

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Tue Oct 13, 2015 7:46 pm
by snasui
:D ตัวอย่าง Code หากคลิกปุ่มลูกศรหมายเลข 2 ตามด้านล่าง ลองปรับใช้กับลูกศรอื่นๆ ครับ

Code: Select all

On Error Resume Next
Range("h5:j9").SpecialCells(xlCellTypeBlanks).Range("a1").Select

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Tue Oct 13, 2015 7:56 pm
by Nat072
ขอบคุณมากครับ อาจารย์.

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Wed Oct 14, 2015 12:36 pm
by Nat072
อาจารย์ ติดปัญหาอยู่ 2 จุด.

1. จากตาราง 1 กดลูกศร 2 เพื่อจะไปตารางที่ 2 จะวิ่งไปอยู่บรรทัดแรก .range("a1")
ซึ่งที่ต้องการคือให้วิ่งไปต่อท้าย เลข 3 (H7) แต่กดแล้วจะวิ่งไปที่ (I5)
(ตาม File ที่แนบ)

2. จะ Protect Sheet
Review > Protect Sheet > Select unlocked cells
ปุ่มอืน ๆ กดได้หมด ยกเว้น ปุ่ม ลูกศร 1, 2, 3 กดไม่ได้ครับ

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Wed Oct 14, 2015 7:43 pm
by snasui
:D ตัวอย่าง Code ตามด้านล่างครับ

Code: Select all

Sub RightArrow6_Click()
    Dim i As Integer, j As Integer
    For j = 1 To 3
        For i = 1 To 5
            If Range("h5:j9").Cells(i, j) = "" Then
                Range("h5:j9").Cells(i, j).Select
                Exit Sub
            End If
        Next i
    Next j
End Sub
ส่วนเรื่องการ Unlocked ยังไม่เคลียร์ ผมทดสอบแล้วกดได้ปกติครับ

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Thu Oct 15, 2015 4:29 am
by Nat072
อาจารย์. ลองทำดูแล้ว แต่ติด Syntax error (File ที่แนบ)

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Thu Oct 15, 2015 6:17 am
by snasui
:D ไม่ทราบว่าคุณ Nat072 นำข้อมูลไปวางด้วยวิธิใด หากวางถูกต้อง Code จะต้องไม่กลายเป็นสีแดง การ Copy Code ทั้งหมดสามารถคลิกที่ Select All ตามภาพด้านล่างครับ

ลองลบ Code ทิ้งใหม่ทั้งหมดแล้ว Copy ไปวางใหม่ หรือ คีย์ลงไปเองทุกอักขระ หากยังติดปัญหาให้แนบไฟล์นั้นมาด้วย จะได้ช่วยตรวจสอบได้ครับ

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง

Posted: Thu Oct 15, 2015 8:27 am
by Nat072
ได้แล้วครับ ขอบคุณมากครับ