- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 142
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2026-7-16
                
|
回復 9# PJChen
我的寫法也是VBA語言
VBA是VB的高階語言,語法相同,只是VBA已經有了許多物件與模組供使用
自學VBA當然不是問題,只是錄製所得的程式碼會將所有動作都記錄進去,造成許多不必要的程式碼
你應配合F1說明來了解每個指令,與程式敘述的意義,再多看別人的寫法,加以思考其邏輯
程式碼中a.Copy .[A1]
這是將物件變數a複製到新活頁簿的第一個工作表的A1儲存格的意思
至於新檔案只要寫入值及顯示全部資料請參考以下程式碼- Sub Ex()
- Dim A As Range
- With ThisWorkbook.Sheets("BCM控管")
- .Columns("A:CZ").Hidden = False
- .Range("A:CZ").AutoFilter Field:=70, Criteria1:=Array( _
- "Delay", "OK", "pre-Booking"), Operator:=xlFilterValues
-
- Set A = Intersect(.UsedRange, .Range("E:BW")).SpecialCells(xlCellTypeVisible)
- With Workbooks.Add
- With .Sheets(1)
- 'A.Copy .Range("A1") '完全複製
- A.Copy
- .Range("A1").PasteSpecial xlPasteValues '選擇性貼上值
-
- .Columns("BO:BQ").Delete Shift:=xlToLeft
- .Columns("BD:BM").Delete Shift:=xlToLeft
- .Columns("AX:AX").Delete Shift:=xlToLeft
- .Columns("AM:AU").Delete Shift:=xlToLeft
- .Columns("AA:AA").Delete Shift:=xlToLeft
- .Columns("V:W").Delete Shift:=xlToLeft
- .Columns("S:T").Delete Shift:=xlToLeft
- End With
- '.SaveAs "D:\另存新檔.xlsx" '此處儲存檔案
- End With
- .ShowAllData '顯示所有資料
- End With
- End Sub
複製代碼 貼上程式碼要加入行號,如圖操作
|
|