Board logo

標題: [發問] 如何利用VBA保留特定字母的列,而刪除其他? [打印本頁]

作者: leehom    時間: 2015-10-6 21:58     標題: 如何利用VBA保留特定字母的列,而刪除其他?

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

假設有以下幾列:


ABCD1251
DFJD1115
EFFE7855
ABCD4754
DGHK5242
ABCD9584
POKD8574
BVGH2547
RTEY4796
ABCD5647
WOIP3254

我想保留ABCD字母開首的列,其他則整列刪除,那應該怎麼做呢?謝謝! :D
作者: stillfish00    時間: 2015-10-7 18:50

回復 1# leehom
手動做 :  excel2010
    功能區  資料>篩選>'不開始於' ABCD
    選取篩選完資料>刪除列>取消篩選
作者: no3-taco    時間: 2015-10-7 19:11

回復 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
複製代碼

作者: leehom    時間: 2015-10-7 21:32

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


對啊,後來也想到這個比較笨但簡單的方式!
作者: leehom    時間: 2015-10-7 21:32

回復 3# no3-taco

謝謝啊,但如果想保留第一列應該怎麼改呢?
作者: no3-taco    時間: 2015-10-7 22:00

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

回復 5# leehom

把其他列刪掉就可以留下第一列了
作者: leehom    時間: 2015-10-8 12:47

回復 6# no3-taco


    我的意思是標題列,因為首字母非ABCD,所以也一拼刪除了
作者: stillfish00    時間: 2015-10-8 13:30

回復 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
複製代碼

作者: hcm19522    時間: 2015-10-8 13:45

http://blog.xuite.net/hcm19522/twblog/348057263
作者: leehom    時間: 2015-10-9 00:00

回復 8# stillfish00

謝謝啊!!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)