code สำหรับ Data validation แบบ multi ติดปัญหาครับ
Posted: Sat Feb 18, 2012 9:17 am
อาจารย์ครับ ผมมีโค้ดนี้อยู่ใน sheet ที่ชื่อว่า DataEntry อยู่แล้ว แต่ผมต้องการให้เซลล์ G10 เป็น Data Validation แบบ multi เผื่อผู้ใช้งานลืมว่าจะเลือกอะไร มีข้อมูล 2 คอลัมพ์ให้เขาดู ปกติ data validation มีแค่ ตัวเลือกคอลัมพ์เดียว ผมทราบว่ามันต้องใช้ macro เขียนลงไป และผมก็ไปได้ตัวอย่าง code มา ปรากฏว่าผมเขียน Priwate Sub Worksheet_Change มันใช้ืชื่อ Private Sub เหมือนกัน ผมเลยอยากทราบว่า ผมจะใช้ Private sub ชื่อเดียวกันทั้งสองอันใน sheet data entry ได้ไหม ผมรู้สึกว่ามันไม่ทำงาน ผมเลยแนบไฟล์มาให้ดูด้วย ผมต้องการ macro ที่ทำให้ data valid มันทำงานได้โดยมี 2 คอลัมพ์ในบรรทัดเดียวให้เลือก ผมแนบไฟล์มา 2 ไฟล ครับ ขออาจารย์ด้วยดู code ในไฟล์ที่สองให้ผมด้วย ผมอยากเอา code นั้นมาใส่ใน ไฟล์ที่หนึ่ง ใน shet ดังกล่าว 2 code ทำไมมันใส่ไม่ได้ครับ
Code: Select all
Option Explicit
' Developed by Contextures Inc.
' www.contextures.com
Private Sub Worksheet_Change(ByVal Target As Range)
Dim historyWks As Worksheet
Dim inputWks As Worksheet
Dim rngA As Range
Dim lRec As Long
Dim lRecRow As Long
Dim lLastRec As Long
Dim lastRow As Long
Set rngA = ActiveCell
If Target.Address = Me.Range("CurrRec").Address _
Or Target.Address = Me.Range("EnSel").Address Then
Application.EnableEvents = False
If Target.Address = Me.Range("EnSel").Address Then
Me.Range("CurrRec").Value = Me.Range("SelRec").Value
End If
Set inputWks = Worksheets("DataEntry")
Set historyWks = Worksheets("TNrecordData")
With historyWks
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row - 1
lLastRec = lastRow - 1
End With
With inputWks
lRec = .Range("CurrRec").Value
If lRec > 0 And lRec <= lLastRec Then
lRecRow = lRec + 1
historyWks.Range(historyWks.Cells(lRecRow, 3), historyWks.Cells(lRecRow, 16)).Copy
.Range("G9").PasteSpecial Paste:=xlPasteValues, Transpose:=True
rngA.Select
End If
End With
Application.EnableEvents = True
End If
End Sub