วิธีลบแถวอื่น ๆ ใน Excel 2007


1

ฉันมีสเปรดชีตที่เรียงตาม ID และเซลล์ที่คำนวณได้ ฉันเรียงลำดับแผ่นงานตามรหัสและเซลล์ที่คำนวณได้ดังนั้นจึงให้แถวที่เกี่ยวข้องกับฉันเป็นคู่ ฉันต้องการลบแถวที่สองของแต่ละคู่บนแผ่นงานทั้งหมด โดยทั่วไปจะมีแถวประมาณ 3000 แถว

มีวิธีง่าย ๆ ในการลบหรือย้ายแถวที่สองไปยังชีตอื่นหรือไม่?

คำตอบ:


5

ไม่ใช่คำตอบของการเขียนโปรแกรมเนื่องจากคุณบอกว่าคุณไม่คุ้นเคยกับ VBA ใน Excel แต่ถ้าเป็นแบบครั้งเดียวให้ทำใน Excel:

  1. เพิ่มคอลัมน์ใหม่ (สมมุติว่า A)
  2. ตั้งค่าแถวแรก (A1) เป็น True
  3. ตั้งค่าแถว A2 เป็น =NOT(A1)
  4. จากนั้นลากแถว A2 ลงไปที่แถวทั้งหมดของคุณ

จากนั้นใช้ตัวกรองอัตโนมัติโดยที่คอลัมน์Aอยู่falseเลือกแถวที่ส่งคืนทั้งหมดแล้วลบออกจากนั้นจึงลบตัวกรองออก


ที่สมบูรณ์แบบ! ใช่ฉันแค่มองหาทางออกที่ง่าย ขอบคุณมากสำหรับความช่วยเหลือของคุณ! ดีที่สุดจอห์น .....

0

หากนี่เป็นงานครั้งเดียวใช้คำตอบของ Seph หากจำเป็นต้องทำซ้ำให้ใช้ VBA ดังนี้:

Sub DemoDeleteAlternateRows()
    Dim iRow As Long, LastRow As Long
    Dim sh As Worksheet
    Set sh = ActiveSheet ' <-- Maybe change this to refer to a specific sheet
    Application.FindFormat.Clear ' Just in case Find was last used with a Format
    LastRow = sh.Cells.Find(What:="*", After:=sh.Cells(1, 1), _
      SearchDirection:=xlPrevious, SearchOrder:=xlByRows, SearchFormat:=False).Row
    For iRow = LastRow To 1 Step -1
        ' Delete even numberede rows (to delete odd numbered
        ' rows, instead use  If iRow Mod 2 = 1 Then).
        If iRow Mod 2 = 0 Then
            sh.Rows(iRow).Delete
        End If
    Next
End Sub

ตรวจสอบให้แน่ใจว่าคุณสำรองข้อมูลก่อนเรียกใช้แมโครใด ๆบนแผ่นงานของคุณ มาโครไม่ใช้เลิกทำ!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.