วิธีคัดลอกแถวและวางลงในแผ่นงานอื่นตามวันที่ใน Excel
สมมติว่าฉันมีช่วงของข้อมูลตอนนี้ฉันต้องการคัดลอกแถวทั้งหมดตามวันที่ที่ระบุแล้ววางลงในแผ่นงานอื่น คุณมีความคิดที่ดีในการจัดการกับงานนี้ใน Excel หรือไม่?
คัดลอกแถวและวางลงในแผ่นงานอื่นตามวันที่ของวันนี้
คัดลอกแถวและวางลงในแผ่นงานอื่นหากวันที่มากกว่าวันนี้
คัดลอกแถวและวางลงในแผ่นงานอื่นตามวันที่ของวันนี้
หากคุณต้องการคัดลอกแถวหากวันนี้เป็นวันนี้โปรดใช้รหัส VBA ต่อไปนี้:
1. กด ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง
2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในหน้าต่างโมดูล
รหัส VBA: คัดลอกและวางแถวตามวันที่ของวันนี้:
Sub CopyRow()
'Updateby Extendoffice
Dim xRgS As Range, xRgD As Range, xCell As Range
Dim I As Long, xCol As Long, J As Long
Dim xVal As Variant
On Error Resume Next
Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
If xRgS Is Nothing Then Exit Sub
Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
If xRgD Is Nothing Then Exit Sub
xCol = xRgS.Rows.Count
Set xRgS = xRgS(1)
Application.CutCopyMode = False
J = 0
For I = 1 To xCol
Set xCell = xRgS.Offset(I - 1, 0)
xVal = xCell.Value
If TypeName(xVal) = "Date" And (xVal <> "") And (xVal = Date) Then
xCell.EntireRow.Copy xRgD.Offset(J, 0)
J = J + 1
End If
Next
Application.CutCopyMode = True
End Sub
3. หลังจากวางรหัสด้านบนแล้วกรุณากด F5 คีย์เพื่อเรียกใช้รหัสนี้และกล่องพร้อมต์จะปรากฏขึ้นเพื่อเตือนให้คุณเลือกคอลัมน์วันที่ที่คุณต้องการคัดลอกแถวตามดูภาพหน้าจอ:
4. จากนั้นคลิก OK ในกล่องพร้อมต์อื่นให้เลือกเซลล์ในแผ่นงานอื่นที่คุณต้องการส่งออกผลลัพธ์ดูภาพหน้าจอ:
5. จากนั้นคลิก OK ตอนนี้แถวที่เป็นวันนี้จะถูกวางลงในแผ่นงานใหม่พร้อมกันดูภาพหน้าจอ:
คัดลอกแถวและวางลงในแผ่นงานอื่นหากวันที่มากกว่าวันนี้
หากต้องการคัดลอกและวางแถวที่วันที่มากกว่าหรือเท่ากับวันนี้เช่นถ้าวันที่เท่ากันหรือมากกว่า 5 วันนับจากวันนี้ให้คัดลอกและวางแถวลงในแผ่นงานอื่น
รหัส VBA ต่อไปนี้อาจช่วยคุณได้:
1. กด ALT + F11 คีย์เพื่อเปิด Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง
2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในหน้าต่างโมดูล
รหัส VBA: คัดลอกและวางแถวหากวันที่มากกว่าวันนี้:
Sub CopyRow()
'Updateby Extentoffice
Dim xRgS As Range, xRgD As Range, xCell As Range
Dim I As Long, xCol As Long, J As Long
Dim xVal As Variant
On Error Resume Next
Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
If xRgS Is Nothing Then Exit Sub
Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
If xRgD Is Nothing Then Exit Sub
xCol = xRgS.Rows.Count
Set xRgS = xRgS(1)
Application.CutCopyMode = False
J = 0
For I = 1 To xCol
Set xCell = xRgS.Offset(I - 1, 0)
xVal = xCell.Value
If TypeName(xVal) = "Date" And (xVal <> "") And (xVal >= Date And (xVal < Date + 5)) Then
xCell.EntireRow.Copy xRgD.Offset(J, 0)
J = J + 1
End If
Next
Application.CutCopyMode = True
End Sub
หมายเหตุ: ในโค้ดด้านบนคุณสามารถเปลี่ยนเกณฑ์เช่นน้อยกว่าวันนี้หรือจำนวนวันตามที่คุณต้องการในไฟล์ ถ้า TypeName (xVal) = "Date" And (xVal <> "") And (xVal> = Date And (xVal <Date + 5)) แล้ว รหัสสคริปต์
3. จากนั้นกด F5 คีย์เพื่อเรียกใช้รหัสนี้ในกล่องพร้อมต์โปรดเลือกคอลัมน์ข้อมูลที่คุณต้องการใช้ดูภาพหน้าจอ:
4. จากนั้นคลิก OK ในกล่องพร้อมต์อื่นให้เลือกเซลล์ในแผ่นงานอื่นที่คุณต้องการส่งออกผลลัพธ์ดูภาพหน้าจอ:
5. คลิก OK ตอนนี้แถวที่วันที่เท่ากันหรือมากกว่า 5 วันนับตั้งแต่วันนี้ถูกคัดลอกและวางลงในแผ่นงานใหม่ตามภาพหน้าจอต่อไปนี้:
สุดยอดเครื่องมือเพิ่มผลผลิตในสำนักงาน
เพิ่มพูนทักษะ Excel ของคุณด้วย Kutools สำหรับ Excel และสัมผัสประสิทธิภาพอย่างที่ไม่เคยมีมาก่อน Kutools สำหรับ Excel เสนอคุณสมบัติขั้นสูงมากกว่า 300 รายการเพื่อเพิ่มประสิทธิภาพและประหยัดเวลา คลิกที่นี่เพื่อรับคุณสมบัติที่คุณต้องการมากที่สุด...
แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก
- เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
- เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
- เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!