Page 1 of 1

ศึกษาการ Search data ด้วย VBA

Posted: Sat Apr 04, 2020 5:02 pm
by pro602
เรียนอาจารย์และพี่ๆสมาชิกคับ
ช่วยแนะนำปัญหาที่เกิดขึ้นกับการเขียน Code VBA ให้ผมหน่อยครับ
ผมได้ศึกษาการSearch data from multiple sheets ของอาจารย์แล้วลองทำตามเจอปัญหา Error ครับ
ไม่แน่ใจว่าผมผิดพลาดตรงจุดไหนช่วยแนะนำผมหน่อยครับ

Code: Select all

Sub SearchMultiplesSheets()
    Dim arr(999, 4) As Variant, r As Range
    Dim ws As Worksheets, i As Integer, s As String
    With Sheets(1)
        s = .Range("C1").Value
        .Range("a3").Resize(.UsedRange.Rows.Count, .UsedRange.Columns.Count).ClearContents
      End With
      For Each ws In Worksheets
         If ws.Name <> Sheets(1).Name Then
            With ws
                For Each r In .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
                If r.Value & r.Offset(0, 1).Value & r.Offset(0, 2).Value & r.Offset(0, 3).Value Like "*" & s & "*" Then
                        arr(i, 0) = r.Value
                        arr(i, 1) = r.Offset(0, 1).Value
                        arr(i, 2) = r.Offset(0, 2).Value
                        arr(i, 3) = r.Offset(0, 3).Value
                         arr(i, 4) = ws.Name
                          i = i + 1
                    End If
              Next r
          End With
      End If
    Next ws
    With Sheets(1)
        .Range("a3").Resize(i, 5).Value = arr
        End With
End Sub

Re: ศึกษาการ Search data ด้วย VBA

Posted: Sat Apr 04, 2020 5:09 pm
by snasui
:D ไฟล์ที่แนบมาไม่มี Code กรุณาแนบไฟล์มาใหม่พร้อมทั้งชี้ให้เห็นว่าเกิดผิดพลาดที่บรรทัดใด จะได้เข้าถึงปัญหาได้โดยไวครับ

Re: ศึกษาการ Search data ด้วย VBA

Posted: Sun Apr 05, 2020 10:19 am
by pro602
pro602 wrote: Sat Apr 04, 2020 5:02 pm เรียนอาจารย์และพี่ๆสมาชิกคับ
ช่วยแนะนำปัญหาที่เกิดขึ้นกับการเขียน Code VBA ให้ผมหน่อยครับ
ผมได้ศึกษาการSearch data from multiple sheets ของอาจารย์แล้วลองทำตามเจอปัญหา Error ครับ
ไม่แน่ใจว่าผมผิดพลาดตรงจุดไหนช่วยแนะนำผมหน่อยครับ

Code: Select all

Sub SearchMultiplesSheets()
    Dim arr(999, 4) As Variant, r As Range
    Dim ws As Worksheets, i As Integer, s As String
    With Sheets(1)
        s = .Range("C1").Value
        .Range("a3").Resize(.UsedRange.Rows.Count, .UsedRange.Columns.Count).ClearContents
      End With
     For Each ws In Worksheets
         If ws.Name <> Sheets(1).Name Then
            With ws
                For Each r In .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
                If r.Value & r.Offset(0, 1).Value & r.Offset(0, 2).Value & r.Offset(0, 3).Value Like "*" & s & "*" Then
                        arr(i, 0) = r.Value
                        arr(i, 1) = r.Offset(0, 1).Value
                        arr(i, 2) = r.Offset(0, 2).Value
                        arr(i, 3) = r.Offset(0, 3).Value
                         arr(i, 4) = ws.Name
                          i = i + 1
                    End If
              Next r
          End With
      End If
    Next ws
    With Sheets(1)
        .Range("a3").Resize(i, 5).Value = arr
        End With
End Sub
ขอโทษทีครับผมแนบไฟล์ผิด สำหรับStep ที่ Error
ผม test run stepไปถึง For Each ws In Worksheets จะขึ้น Run time error "13" ครับ

Re: ศึกษาการ Search data ด้วย VBA

Posted: Sun Apr 05, 2020 10:52 am
by snasui
:D เปลี่ยน Dim ws As Worksheets เป็น Dim ws As Worksheet ครับ

Re: ศึกษาการ Search data ด้วย VBA

Posted: Sun Apr 05, 2020 11:02 am
by pro602
snasui wrote: Sun Apr 05, 2020 10:52 am :D เปลี่ยน Dim ws As Worksheets เป็น Dim ws As Worksheet ครับ
ขอบคุณครับอาจารย์