การแสดงข้อมูลจากฐานข้อมูลตามเงื่อนไขด้วย VBA
Posted: Thu Nov 19, 2015 4:52 pm
สวัสดีครับ คือผมลองทำตามตัวอย่างที่อาจารย์แสดงไว้ที่ Microsoft Excel Tips and Tricks แต่ติดขัดครับ ไม่ทราบว่าต้องทำยังไงต่อครับ และผมก็มีข้อมูลที่ต้องเพิ่มขึ้นตลอด
และ Code นี้วางไว้ที่ Work Book
Code วางไว้ที่ชีท Report
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$2" And Target <> "" Then
Group
ElseIf Target.Address = "$E$2" And Target = "" Then
MsgBox "Please select data."
End If
End Sub
Code: Select all
Sub ShowEmp()
Dim a() As Variant, lng As Long
Dim r As Range, rAll As Range
Dim rt As Range, rl As Long
Application.EnableEvents = False
Application.ScreenUpdating = False
rl = Rows.Count
With Worksheets("Database")
Set rAll = .Range("A2", .Range("A" & rl).End(xlUp))
End With
For Each r In rAll
If r = Worksheets("Report").Range("E2") Then
lng = lng + 1
ReDim Preserve a(5, lng)
a(1, lng) = lng
a(2, lng) = r.Offset(0, 10)
a(3, lng) = r.Offset(0, -9)
a(4, lng) = r.Offset(0, -8)
a(5, lng) = r.Offset(0, -7)
End If
Next r
If lng > 0 Then
With Worksheets("Report")
Set rt = .Range("A4", .Range("G" & lng - 1 + 5))
.Range("A4", .Range("A" & rl).End(xlUp).Offset(0, 4)).ClearContents
.Range("A5:G5").Copy
rt.PasteSpecial xlPasteFormats
rt = Application.Transpose(a)
.Range("D4", .Range("D" & rl).End(xlUp)).NumberFormat = "000000"
.Range(.Range("A4").End(xlDown).Offset(1, 0), .Range("G" & rl)).Clear
.Range("E2").Activate
End With
Else
MsgBox "Data not found."
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub