snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
Sub findFR()
Dim a As Range, o As Range, r As Range
Dim i As Integer
For i = 2 To Sheets.Count
Sheets(i).Select
a = Range.Find(What:="ลำดับ", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows + 1, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
r = Range(a).End(xlUp).Row
Range("a:" & (cell(a, 15).Range)).Copy
Sheets(1).Select
Range("a" & Rows.Count + 1).PasteSpecial
Next i
End Sub
Dim rs As Range, c As Range
Dim i As Integer
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Name <> "Sheet1" Then
Set c = sh.Cells.Find(What:="ÅӴѺ", LookIn:=xlValues).Offset(1, 0)
If Not c Is Nothing Then
Set rs = sh.Range(c, sh.Cells(sh.Rows.Count, c.Column).End(xlUp))
i = rs.Rows.Count
With Worksheets("Sheet1")
.Range("a" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 15).Value = rs.Resize(, 15).Value
End With
End If
End If
Next sh
Dim rs As Range, c As Range
Dim i As Integer
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Name <> "Sheet1" Then
Set c = sh.Cells.Find(What:="ÅӴѺ", LookIn:=xlValues).Offset(1, 0)
If Not c Is Nothing Then
Set rs = sh.Range(c, sh.Cells(sh.Rows.Count, c.Column).End(xlUp))
i = rs.Rows.Count
With Worksheets("Sheet1")
.Range("a" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 15).Value = rs.Resize(, 15).Value
End With
End If
End If
Next sh
Dim rs As Range, c As Range, o As Range
Dim i As Integer, e As Integer
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Name <> "Sheet1" Then
Set c = sh.Cells.Find(What:="ÅӴѺ", LookIn:=xlValues).Offset(1, 0)
Set o = sh.Cells.Find(What:="ÃËÑÊÊÒ¢Ò", LookIn:=xlValues)
If o.Value = "ÃËÑÊÊÒ¢Ò" Then
If Not c Is Nothing Then
Set rs = sh.Range(c, sh.Cells(sh.Rows.Count, c.Column).End(xlUp))
i = rs.Rows.Count
With Worksheets("Sheet1")
.Range("a" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 15).Value = rs.Resize(, 15).Value
.Range("p" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 1).Value = o.Offset(0, 1).Value
End With
End If
End If
End If
Next sh
Dim rs As Range, c As Range, o As Range
Dim i As Integer, e As Integer
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Name <> "Sheet1" Then
Set c = sh.Cells.Find(What:="ÅӴѺ", LookIn:=xlValues).Offset(1, 0)
Set o = sh.Cells.Find(What:="ÃËÑÊÊÒ¢Ò", LookIn:=xlValues)
If o.Value = "ÃËÑÊÊÒ¢Ò" Then
If Not c Is Nothing Then
Set rs = sh.Range(c, sh.Cells(sh.Rows.Count, c.Column).End(xlUp))
i = rs.Rows.Count
With Worksheets("Sheet1")
.Range("a" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 15).Value = rs.Resize(, 15).Value
.Range("p" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 1).Value = o.Offset(0, 1).Value
End With
End If
End If
End If
Next sh
PB1 : ลองปรับตามแล้วครับ ถ้าไม่เจอเงื่อนไขอยากให้เป็นช่องว่างเฉพาะคอลัมภ์ P ครับ
แต่โค้ดมันดักไม่ให้ข้อมูลมาเลย เดี๋ยวจะให้ User Manual ใส่ครับผม
PB2: ผมลองใส่ Status Bar เพิ่มเติม ปรากฎว่าข้อมูลถูกรันเรียบร้อย
ตัวเลข Status Bar ยังวิ่งอยู่เลยครับ ต้องแก้แบบไหนครับ
Dim rs As Range, c As Range, o As Range
Dim i As Integer, e As Integer
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Name <> "Sheet1" Then
Set c = sh.Cells.Find(What:="ÅӴѺ", LookIn:=xlValues).Offset(1, 0)
Set o = sh.Cells.Find(What:="ÃËÑÊÊÒ¢Ò", LookIn:=xlValues)
If Not c Is Nothing Then
Set rs = sh.Range(c, sh.Cells(sh.Rows.Count, c.Column).End(xlUp))
i = rs.Rows.Count
With Worksheets("Sheet1")
.Range("a" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 15).Value = rs.Resize(, 15).Value
If o.Value = "ÃËÑÊÊÒ¢Ò" Then
.Range("p" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 1).Value = o.Offset(0, 1).Value
End If
End With
End If
End If
Next sh
ในส่วนของการยกเลิกการแสดง Status Bar ใช้ Statement Application.StatusBar = False ถูกแล้วครับ
Dim rs As Range, c As Range, o As Range
Dim i As Integer, e As Integer
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Name <> "Sheet1" Then
Set c = sh.Cells.Find(What:="ÅӴѺ", LookIn:=xlValues).Offset(1, 0)
Set o = sh.Cells.Find(What:="ÃËÑÊÊÒ¢Ò", LookIn:=xlValues)
If Not c Is Nothing Then
Set rs = sh.Range(c, sh.Cells(sh.Rows.Count, c.Column).End(xlUp))
i = rs.Rows.Count
With Worksheets("Sheet1")
.Range("a" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 15).Value = rs.Resize(, 15).Value
If o.Value = "ÃËÑÊÊÒ¢Ò" Then
.Range("p" & .Rows.Count).End(xlUp).Offset(1, 0) _
.Resize(i, 1).Value = o.Offset(0, 1).Value
End If
End With
End If
End If
Next sh
ในส่วนของการยกเลิกการแสดง Status Bar ใช้ Statement Application.StatusBar = False ถูกแล้วครับ