返回列表 上一主題 發帖

[發問] 如何利用VBA保留特定字母的列,而刪除其他?

[發問] 如何利用VBA保留特定字母的列,而刪除其他?

本帖最後由 leehom 於 2015-10-6 21:59 編輯

假設有以下幾列:


ABCD1251
DFJD1115
EFFE7855
ABCD4754
DGHK5242
ABCD9584
POKD8574
BVGH2547
RTEY4796
ABCD5647
WOIP3254

我想保留ABCD字母開首的列,其他則整列刪除,那應該怎麼做呢?謝謝! :D

回復 1# leehom
手動做 :  excel2010
    功能區  資料>篩選>'不開始於' ABCD
    選取篩選完資料>刪除列>取消篩選
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 1# leehom
參考看看!
  1. Sub EXabcd()
  2. Dim lastRow As Long: lastRow = ActiveSheet.Cells(rowS.Count, 1).End(xlUp).Row
  3. Dim i As Long, j As Long: j = lastRow
  4. For i = 1 To lastRow
  5.     If Not Cells(i, 1) Like "ABCD####" Then
  6.         rowS(i).Delete 'Shift:=xlUp
  7.         i = i - 1: j = j - 1
  8.     End If
  9.     If j <= i Then Exit Sub
  10. Next i
  11. End Sub
複製代碼

TOP

回復  leehom
手動做 :  excel2010
    功能區  資料>篩選>'不開始於' ABCD
    選取篩選完資料>刪除列 ...
stillfish00 發表於 2015-10-7 18:50


對啊,後來也想到這個比較笨但簡單的方式!

TOP

回復 3# no3-taco

謝謝啊,但如果想保留第一列應該怎麼改呢?

TOP

本帖最後由 no3-taco 於 2015-10-7 22:02 編輯

回復 5# leehom

把其他列刪掉就可以留下第一列了

TOP

回復 6# no3-taco


    我的意思是標題列,因為首字母非ABCD,所以也一拼刪除了

TOP

回復 7# leehom
  1. Sub Test()
  2.     For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
  3.         If Left(Cells(i, 1), 4) <> "ABCD" Then Rows(i).Delete Shift:=xlShiftUp
  4.     Next
  5. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

http://blog.xuite.net/hcm19522/twblog/348057263

TOP

回復 8# stillfish00

謝謝啊!!!

TOP

        靜思自在 : 天上最美是星星,人生最美是溫情。
返回列表 上一主題