Board logo

標題: 自動刪除空白列 [打印本頁]

作者: yowhome    時間: 2013-4-9 09:55     標題: 自動刪除空白列

各位大大早晨, 請看附件,
[attach]14599[/attach]
[attach]14598[/attach]


黃色部份是pivot table, 綠色部份是要刪除的空白列

小弟想請教下, 因為每次insert pivot table 都不一樣. 有時多, 有時少, 我應該如何才可以刪除下面的空白列 ??
作者: mark15jill    時間: 2013-4-9 12:10

各位大大早晨, 請看附件,




黃色部份是pivot table, 綠色部份是要刪除的空白列

小弟想請教下, 因 ...
yowhome 發表於 2013-4-9 09:55



提供個小方法
Sub owg()
Dim nt, un As String

nt = "NTHDE"
un = "UNIT NB"

For goe = 1 To 65535
    If Cells(goe, 2) = nt Then kn = goe + 2
    If Cells(goe, 2) = un Then ku = goe - 2

Next
'    Rows("36:36").Select '刪除整列

    Range("b" & kn, "j" & ku).Select
    Selection.Delete Shift:=xlUp
End Sub
作者: yowhome    時間: 2013-4-9 13:13

回復 2# mark15jill


    你好... 我嘗試過, 可以了, 不過想問下, 因為table 入面資料會改變, 如果我要用GRAND TOTAL 開始,

咁我就張 nt = "NTHDE" 改為 nt= "grand total", 跟住就error, 我又應如何寫法呢 ??
作者: yowhome    時間: 2013-4-9 13:16

回復 3# yowhome


    不好意思, 我成功了, 原來要大細相同. 謝謝!!
作者: mark15jill    時間: 2013-4-9 13:43

本帖最後由 mark15jill 於 2013-4-9 13:45 編輯
回復  yowhome


    不好意思, 我成功了, 原來要大細相同. 謝謝!!
yowhome 發表於 2013-4-9 13:16



  1.程式的 +2    -2  是看妳的 nt 和 un 以及想要留的空白而定..
  2. nt   un 的文字可更換,但英文大小寫要相同,不然會無資料
3.之所以用 "NTHDE"  是因為 單一儲存格比較好判斷..


    nt = "NTHDE"
un = "UNIT NB"


    If Cells(goe, 2) = nt Then kn = goe + 2   
    If Cells(goe, 2) = un Then ku = goe - 2
作者: yowhome    時間: 2013-4-10 09:59

回復 5# mark15jill

[attach]14608[/attach]
    你好, 小弟又發現有問題, 小弟用你這個方法嘗做一個range selection,

Dim RS, GT As String

RS = "REMARKS:"
GT = "Grand Total"

For GOE = 1 To 65535
    If Cells(GOE, 2) = RS Then RS1 = GOE + 2 ' 第二行儲存格含有REMARKS:
    If Cells(4, GOE) = GT Then GT1 = GOE + 2 ' 第四列儲存格含有Grand Total


Next

    Range("A1", GT1 & RS1).Select
    Selection.Copy

但係 (    If Cells(4, GOE) = GT )  出現error, 我應如何解決呢 ??
作者: mark15jill    時間: 2013-4-10 10:16

本帖最後由 mark15jill 於 2013-4-10 10:32 編輯
回復  mark15jill


    你好, 小弟又發現有問題, 小弟用你這個方法嘗做一個range selection,

Dim R ...
yowhome 發表於 2013-4-10 09:59



    一下子找列  一下子找行  當然錯誤...
    欄印象中 不能超過256
     想要詢問的是什麼?
作者: Hsieh    時間: 2013-4-10 10:29

回復 6# yowhome
不是要刪除綠色部分的整列嗎?
也就是黃表格下面留2列空白列不是嗎?
  1. Sub ex()
  2. With ActiveSheet.UsedRange
  3. Set rng = .Columns(2).SpecialCells(xlCellTypeBlanks)
  4. For Each a In rng.Areas
  5.    If a.Count > 2 Then a.Cells(1).Offset(1).Resize(a.Count - 2, 1).EntireRow.Delete
  6. Next
  7. End With
  8. End Sub
複製代碼

作者: yowhome    時間: 2013-4-10 10:47

回復 7# mark15jill


    不好意思, 我又說得不清楚了, 是這樣的:

我想要的是一個範圍SELECTION. 範圍係由A1開始到 第四列GRAND TOTAL 向右二行,  及 REMARKS: 下的2行,

如果用 BOOK1.XLS 就是 A1:L30, 但是由於我每次插入的PIVOT TABLE 大小都不一樣, 所以只好嘗試用這個方法,

我想請問下我應如何做呢 ?
作者: yowhome    時間: 2013-4-10 10:49

回復 8# Hsieh


    你好. 其實這個問題已經解決了, 只是另有一個問題, 我又不想問新話題, 所以在此繼續, 不好意思
作者: yowhome    時間: 2013-4-10 13:44

不好意思, 咁多位大大, 我解決了這個問題了, 謝謝




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