สวัสดีครับอาจารย์ผมมีเรื่องรบกวนอาจารย์ครับ..
ผมอยากให้ข้อมูลในชีทdatabase แสดงที่ ชีท Report ด้วยค่าที่ใส่ใน textbox ของฟอร์มสอบถามครับผม..พยายามแล้วทำไม่ได้ครับผม...
รันโปรแกรมแล้วขึ้น Run-time error "1004":Application-defined or objact-defined error ครับ เกิดจากอะไรครับผม..
Code: Select all
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "UserForm1.TextBox1" And Target <> "" Then
ShowEmp
ElseIf Target.Address = "UserForm1.TextBox1" And Target = "" Then
MsgBox "Please select data."
End If
End Sub
Code: Select all
Option Explicit
Option Base 1
Sub ShowData()
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 = [color=#FFFF40]Worksheets("Report").Range(UserForm1.TextBox1[/color]) Then
lng = lng + 1
ReDim Preserve a(6, lng)
a(1, lng) = lng
a(2, lng) = r.Offset(0, 0)
a(3, lng) = r.Offset(0, 1)
a(4, lng) = r.Offset(0, 2)
a(5, lng) = r.Offset(0, 3)
a(6, lng) = r.Offset(0, 4)
End If
Next r
If lng > 0 Then
With Worksheets("Report")
Set rt = .Range("A2", .Range("E" & lng - 1 + 5))
.Range("A2", .Range("A" & rl).End(xlUp).Offset(0, 4)).ClearContents
.Range("A2:E2").Copy
rt.PasteSpecial xlPasteFormats
rt = Application.Transpose(a)
.Range("B2", .Range("B" & rl).End(xlUp)).NumberFormat = "000000"
.Range(.Range("A2").End(xlDown).Offset(1, 0), .Range("E" & rl)).Clear
.Range("UserForm1.TextBox1.Text").Activate
End With
Else
MsgBox "Data not found."
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
ขอบคุณอาจารย์ล่วงหน้าครับ
ทดสอบระบบ.xls