返回列表 上一主題 發帖

[發問] 簡化巨集程式

[發問] 簡化巨集程式

最近一直在修改巨集程式,因為懂得不多,所以諸多問題,請見諒.
麻辣家族各位熱心人士幫忙我寫了些程式,我自己稍加修改成所需要的巨集程式,以下這個雖然改了好幾個小時,可以用了,但我知道有很多重複的語言,使得巨集跑得很慢,我已經試著修改N次了,都行不通,不知有沒有人可以幫我精簡它?
Sub copy_from_Multi_format()
'
' copy_from_Multi_format 巨集

   With Workbooks("2011 BCMart Multi-Format.xlsx").Sheets("BCM控管")
    .Columns("A:CZ").Hidden = False
    Set A = Intersect(.UsedRange, .Range("A:CZ")).SpecialCells(xlCellTypeVisible)
    With Workbooks("VBA Cluster.xlsm")  '請改成要複製活頁簿的名稱(已經打開)
    With Sheets("BCM控管")
    .Columns("A:CZ").Hidden = False
    A.Copy Workbooks("VBA Cluster.xlsm").Sheets("BCM控管").Range("A1")  '完全複製
   
   End With
   End With
   End With
   
       With Workbooks("VBA Cluster.xlsm")  '請改成要複製活頁簿的名稱(已經打開)
    With Sheets("BCM控管")
    Set A = Intersect(.UsedRange, .Range("A:CZ")).SpecialCells(xlCellTypeVisible)
    A.Copy
    .Range("A1").PasteSpecial xlPasteValues '選擇性貼上值
   End With
   End With
   
    Workbooks("VBA Cluster.xlsm").Activate
    Sheets("BCM控管").Select
    Columns("F:F").Select
    Selection.Replace What:="#N/A", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
        
    Workbooks("VBA Cluster.xlsm").Activate
    Sheets("VBA").Select
    Range("B1").Select
End Sub

GBKEE,上述程式執行很快,但有二個問題,因為這跟我錄製巨集的程式碼不同,我不會改,請幫我修正以下:

1. 全部的程式在同一工作表會用同樣方法從三個Sheets複製資料,即:
Workbooks("2011 BCMart Multi-Format.xlsx").Sheets("BCM控管") copy 到 Workbooks("VBA Cluster.xlsm").Sheets("BCM控管")
Workbooks("2011 BCMart Multi-Format.xlsx").Sheets("Factory Ship") copy 到 Workbooks("VBA Cluster.xlsm").Sheets("Factory Ship")
Workbooks("2011 BCMart Multi-Format.xlsx").Sheets("Chart") copy 到 Workbooks("VBA Cluster.xlsm").Sheets("Chart")

2. 因為工作表"2011 BCMart Multi-Format.xlsx"都有公式,希望貼上另一個工作表 Workbooks("VBA Cluster.xlsm")後除了完全複製格式外,還要改成"貼上值"不要公式.

這種情形下我改什麼修改程式碼?

TOP

GBKEE大大,
三個不同的SHEET,是採用同樣方法去複製及完全貼上及貼上值,但每個sheet的欄位都不同,所以無法以一致性方去作,請問我要怎麼改?感謝你!
Workbooks("2011 BCMart Multi-Format.xlsx").Sheets("BCM控管") A:CZ
Workbooks("2011 BCMart Multi-Format.xlsx").Sheets("Factory Ship") A:AI
Workbooks("2011 BCMart Multi-Format.xlsx").Sheets("Chart") A:AP

TOP

GBKEE,謝謝你,一切運作正常.
想請教:我將程式COPY到工作表的時候,"Option Explicit"為什麼都會跑到線的上方?

TOP

也可以刪除的嗎?謝謝.

TOP

謝謝你的說明.

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題