新手問題,如何篩選後自動將資料由第一欄刪除至最後一欄???
- 帖子
- 134
- 主題
- 27
- 精華
- 0
- 積分
- 168
- 點名
- 0
- 作業系統
- WINXP
- 軟體版本
- EXCEL 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 雲林
- 註冊時間
- 2010-10-6
- 最後登錄
- 2018-5-13

|
感謝GBKEE兄,但我希望的列高,是會依附件中的F欄位列數去自動調整,例如:第2列有3行,則其行高會自動變為45, 第11列有5行,則其行高為75,依此類推...
另篩選的巨集會再仔細研究一下,先行感謝...^^ |
|
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2012-1-9 11:19
| 只看該作者
回復 3# p6703
一列固定列高15 錄製後可套入- Option Explicit
- Sub Ex() '此程式:請篩選資料後套上
- Dim Rng As Range, Rng1 As Range, E As Range
- With ActiveSheet '作用中工作表
- If .FilterMode = True Then '如果指定活頁簿處於有篩選模式則為 True
- Set Rng = .UsedRange.SpecialCells(xlCellTypeVisible) '設定篩選資料範圍
- '****方式1 顯示所有資料
- .AutoFilterMode = False '屬性為 False 取消工作表 [自動篩選]
- '如果目前在工作表上顯示有 [自動篩選] 下拉箭號,則此屬性為 True
- '****方式2 顯示所有資料
- ' .ShowAllData 'ShowAllData 方法: 使目前篩選清單的所有列均可見。如果正在使用自動篩選,本方法將箭頭變更為 [全部]。
- '如處於沒有篩選模式: ShowAllData會有錯誤
- For Each E In .UsedRange.Rows '所有資料列
- If Application.Intersect(E, Rng) Is Nothing Then '比對資料列: 不在篩選資料範圍內
- If Rng1 Is Nothing Then '未設定Rng1
- Set Rng1 = E '第一次:設定Rng1
- Else
- Set Rng1 = Union(E, Rng1) '第一次以後:設定範圍加上(Union)上次 Rng1
- End If
- End If
- Next
- Rng1.Delete xlShiftUp '刪除不是篩選資料範圍內的Range 下方上移
- End If
- End With
- End Sub
複製代碼 |
|
|
|
|
|
|
|
- 帖子
- 134
- 主題
- 27
- 精華
- 0
- 積分
- 168
- 點名
- 0
- 作業系統
- WINXP
- 軟體版本
- EXCEL 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- 雲林
- 註冊時間
- 2010-10-6
- 最後登錄
- 2018-5-13

|
3#
發表於 2012-1-9 09:30
| 只看該作者
這幾天摸索因VBA仍不熟,只用其他方法也先有解決了小弟的問題,說明如下:
1.指定最上層列數由下刪除,指定為第2行一樣可達成,因篩選後只會秀出符合條件的值,由第2列刪除再取消篩選,並不會將原2列未符合條件的資料一併刪除
2.小弟是以庫位篩選,將預計要留除的庫位資料秀於其他工作表,然後以VLOOKUP比對只要非該庫位的就於資料最後一欄位自動秀出"*",並用篩選將*列數刪除,再用重新排序即可完成留下指定庫位的資料
現只有第3點問題仍無法解決,請各位先進協助是否可依指定欄位的列數自動設定其列高???(一列固定列高15) |
|
|
|
|
|
|
|