snasui.com ยินดีต้อนรับ ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ใน column แรก ต้องการค้นหา ปี 2014 แล้ว copy ไป ทั้งบรรทัด อีก sheet หนึ่ง
ใช้คำสั่งคือ
On Error Resume Next
xx = DatePart("yyyy", Date)
With Sheets("Sheet1").Range("a:a")
Set c = .Find(What:=xx, After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not c Is Nothing Then
firstaddr = c.Address
Do
c.Value = ""
Set c = Cells.FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddr
End If
End With
'Sheets("Sheet1").Range("a:a").SpecialCells( _
' xlCellTypeBlanks).EntireRow.Copy
Sheets("Sheet1").Range("a:a").SpecialCells( _
xlCellTypeBlanks).EntireRow.Copy
Sheets("Sheet2").Select
Rows("1:1").Select
ActiveSheet.Paste
Sub tesr()
'xx = Worksheets("sheet1").Range("c5").Value
'Worksheets("sheet1").Range("c15").Value = xx
'i = WorksheetFunction.CountA(Worksheets("sheet1").Columns("C:C")) + 5
'Worksheets("sheet1").Cells(i, 3).Value = "Add data"
On Error Resume Next
xx = DatePart("yyyy", Date)
With Sheets("Sheet1").Range("a:a")
Set c = .Find(What:=xx, After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not c Is Nothing Then
firstaddr = c.Address
Do
c.Value = ""
Set c = Cells.FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddr
End If
End With
'Sheets("Sheet1").Range("a:a").SpecialCells( _
' xlCellTypeBlanks).EntireRow.Copy
Sheets("Sheet1").Range("a:a").SpecialCells( _
xlCellTypeBlanks).EntireRow.Copy
Sheets("Sheet2").Select
Rows("1:1").Select
ActiveSheet.Paste
End Sub
Sub tesr()
xx = DatePart("yyyy", Date)
With Range("a:a")
Set c = .Find(xx, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
i = i + 1
c.EntireRow.Copy Sheets("Sheet2").Cells(1 & i)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub