返回列表 上一主題 發帖

新手問題,如何篩選後自動將資料由第一欄刪除至最後一欄???

新手問題,如何篩選後自動將資料由第一欄刪除至最後一欄???

本帖最後由 p6703 於 2012-1-5 11:33 編輯

小弟近期開始學習VBA,現階段還是使用錄製的方式學習,因資料每次均會有所變更,原錄製時是按定當時該列數(例,上次錄製的列數為11列開始刪除,但下次的資料篩選後的資料由第2列開始時,2~10列的資料就無法刪除了),請問如何設定巨集,使其篩選後由第一符合條件的資料開始刪除至最後一列

另如何設定指定欄位的資料只要符合某條件,即自動將除了該條件外的資料全數刪除???(例:E欄凡有M開頭的資料留著,其餘原資料自動刪除)==>如要多欄位符合設定條件,是否也可依樣作業即可達成???

如於備註欄位填入多列資料,可否依每列固定行高15,自動調整適當的列高(例:如欄位內有4列,即列高為60)

以上問題煩請先進不吝指教,先在此謝謝了:handshake

感謝GBKEE兄即時的告知,已將資料附件如下

Book2.rar (2.29 KB)

這幾天摸索因VBA仍不熟,只用其他方法也先有解決了小弟的問題,說明如下:

1.指定最上層列數由下刪除,指定為第2行一樣可達成,因篩選後只會秀出符合條件的值,由第2列刪除再取消篩選,並不會將原2列未符合條件的資料一併刪除

2.小弟是以庫位篩選,將預計要留除的庫位資料秀於其他工作表,然後以VLOOKUP比對只要非該庫位的就於資料最後一欄位自動秀出"*",並用篩選將*列數刪除,再用重新排序即可完成留下指定庫位的資料

現只有第3點問題仍無法解決,請各位先進協助是否可依指定欄位的列數自動設定其列高???(一列固定列高15)

TOP

感謝GBKEE兄,但我希望的列高,是會依附件中的F欄位列數去自動調整,例如:第2列有3行,則其行高會自動變為45, 第11列有5行,則其行高為75,依此類推...

另篩選的巨集會再仔細研究一下,先行感謝...^^

TOP

感謝GBKEE兄,小弟仍不明巨集用法,特再請問:

第二種巨集執行後行高變為36,且好像每個報表執行起來行高均不同,且於巨集中未見有指定以F欄位行高判定,不知是否可再加以解釋巨集的用法???

TOP

呵呵..感謝GBKEE兄啦,我只是想說往後可能還可運用,按以上巨集執行後應可符合要求了,但小弟還是有一問題,雖然已可按欄位要求自動設定列高,但發現是按預設的列高12去調整的,因小弟使用的習慣字體大小為9時,適當的列高為15,這是否可再經由巨集調整呢???

TOP

GBKEE兄,如按以上巨集,那執行後每列調整成15行高,非小弟需求
如按EXCEL自動調整的功能,如果該行欄位最多有7列,則按字體9其行高即為7 X 12=84,但列印會有一些字體被裁切,調整是以行高15為佳

故小弟是希望可按巨集將原EXCEL的預計行高12--->15

TOP

GBKEE兄,按以上巨集套用原我附件,仍無法達成小弟要求的

小弟上網找了一些相關的討論,以下可達成一部份的要求(就是不斷行,以每行26字計算,超過即直接無條件進位一列)
以下巨集是一次判定200列,請問如何巨集自動判斷資料行數,自行可以按有資料的列數去設定欄高呢???
但如果按附件中F欄位的話則此仍無法達成(因依編號斷行,有時一列可能10幾個字)
  1. Sub 行高()
  2. Dim i As Integer
  3. For i = 1 To 200
  4. If (Len(Cells(i, 12)) / 26) > 1 Then
  5. Y = Application.WorksheetFunction.RoundUp(Len(Cells(i, 12)) / 26, 0)
  6. Rows(i).RowHeight = 15 * Y
  7. End If
  8. Next
  9. End Sub
複製代碼

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題