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

แนบ VBA มาในไฟล์ด้วยจะได้ช่วยดูให้ได้ครับ
Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง
Posted: Tue Oct 13, 2015 7:10 pm
by Nat072
ตอนนี้ ปุ่ม 1, 2, 3, Undo, Del ของแต่ละตารางเขียนไว้แล้วครับ
แต่ปุ่ม ลูกศร 1, 2, 3 ที่จะให้กระโดดไปอีกตาราง เขียนไม่เป็นครับ
ตัวอย่าง :-
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

การโพสต์ Code ให้ทำตามกฎการใช้บอร์ดข้อ 5 ด้านบน ผมแนะนำไว้แล้วว่าให้โพสต์ในลักษณะใดครับ

Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง
Posted: Tue Oct 13, 2015 7:24 pm
by Nat072
แก้ใหม่แล้วครับ อาจารย์.
Re: กดปุ่ม ให้กระโดดข้ามไปอีกตาราง
Posted: Tue Oct 13, 2015 7:46 pm
by snasui

ตัวอย่าง 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

ตัวอย่าง 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

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