返回列表 上一主題 發帖

自動複製有資料的區塊

  1. Sub Ex()
  2.     With ThisWorkbook.Sheets("BCM控管")
  3.     .Columns("A:CZ").Hidden = False

  4.     .Range("A:CZ").AutoFilter Field:=70, Criteria1:=Array( _
  5.         "Delay", "OK", "pre-Booking"), Operator:=xlFilterValues
  6.          
  7.    Set a = Intersect(.UsedRange, .Range("E:BW")).SpecialCells(xlCellTypeVisible)
  8.    With Workbooks.Add
  9.    With .Sheets(1)
  10.     a.Copy .[A1]
  11.     .Columns("BO:BQ").Delete Shift:=xlToLeft
  12.     Columns("BD:BM").Delete Shift:=xlToLeft
  13.     Columns("AX:AX").Delete Shift:=xlToLeft
  14.     Columns("AM:AU").Delete Shift:=xlToLeft
  15.     Columns("AA:AA").Delete Shift:=xlToLeft
  16.     Columns("V:W").Delete Shift:=xlToLeft
  17.     Columns("S:T").Delete Shift:=xlToLeft
  18.    End With
  19.    '.SaveAs "D:\另存新檔.xlsx"   '此處儲存檔案
  20.    End With
  21.    End With
  22. End Sub
複製代碼
回復 6# PJChen
學海無涯_不恥下問

TOP

回復 9# PJChen
我的寫法也是VBA語言
VBA是VB的高階語言,語法相同,只是VBA已經有了許多物件與模組供使用
自學VBA當然不是問題,只是錄製所得的程式碼會將所有動作都記錄進去,造成許多不必要的程式碼
你應配合F1說明來了解每個指令,與程式敘述的意義,再多看別人的寫法,加以思考其邏輯
程式碼中a.Copy .[A1]
這是將物件變數a複製到新活頁簿的第一個工作表的A1儲存格的意思
至於新檔案只要寫入值及顯示全部資料請參考以下程式碼
  1. Sub Ex()
  2. Dim A As Range
  3.     With ThisWorkbook.Sheets("BCM控管")
  4.     .Columns("A:CZ").Hidden = False

  5.     .Range("A:CZ").AutoFilter Field:=70, Criteria1:=Array( _
  6.         "Delay", "OK", "pre-Booking"), Operator:=xlFilterValues
  7.          
  8.    Set A = Intersect(.UsedRange, .Range("E:BW")).SpecialCells(xlCellTypeVisible)
  9.    With Workbooks.Add
  10.    With .Sheets(1)
  11.    'A.Copy .Range("A1")  '完全複製
  12.      A.Copy
  13.     .Range("A1").PasteSpecial xlPasteValues '選擇性貼上值
  14.    
  15.     .Columns("BO:BQ").Delete Shift:=xlToLeft
  16.     .Columns("BD:BM").Delete Shift:=xlToLeft
  17.     .Columns("AX:AX").Delete Shift:=xlToLeft
  18.     .Columns("AM:AU").Delete Shift:=xlToLeft
  19.     .Columns("AA:AA").Delete Shift:=xlToLeft
  20.     .Columns("V:W").Delete Shift:=xlToLeft
  21.     .Columns("S:T").Delete Shift:=xlToLeft
  22.    End With
  23.    '.SaveAs "D:\另存新檔.xlsx"   '此處儲存檔案
  24.    End With
  25.    .ShowAllData '顯示所有資料
  26.    End With
  27. End Sub
複製代碼
貼上程式碼要加入行號,如圖操作
學海無涯_不恥下問

TOP

回復 12# PJChen


    With ThisWorkbook.Sheets("Chart-F")
    Set B = Intersect(.UsedRange, .Range("A:D")).SpecialCells(xlCellTypeVisible)
    B.Copy Workbooks("2011 BCMart Multi-Format.xlsx").Sheets("Factory's order").Range("A1")      '完全複製
   End With
學海無涯_不恥下問

TOP

回復 14# PJChen

With ThisWorkbook.Sheets("Chart-F")
    Set B = Intersect(.UsedRange, .Range("A:D")).SpecialCells(xlCellTypeVisible)
    Workbooks("2011 BCMart Multi-Format.xlsx").Activate
    Sheets("Factory's order").Range("A1").Select
    B.Copy
    Selection.PasteSpecial xlPasteValues   '選擇性貼上值
End With
學海無涯_不恥下問

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題