- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
本帖最後由 c_c_lai 於 2012-11-20 07:38 編輯
回復 3# GBKEE
回復 1# kai6929
的確是個蠻不錯的範例分享,尤其是 AdvancedFilter 進階篩選的實務應用,
其細膩地處理與表達均十分精湛,謹此感謝 GBKEE 的線上指導。
目前,我將 #3 的程式略為修改成:如果清單 (ComboBox) 內工作表業已存在,
則再次將它開啟,否則將工作表「請款書雛形」複製到所有工作表的最後。
如此,才不致因重覆開啟而導致的錯誤中斷執行 (GBKEE 的語法是直接寫入到「請款書雛形」)。
(#1 的原本用意,可能是想保留原始母表,而於選單時再另行新增「請款書」)- Private Sub 製作請款書()
- Dim cts As Integer, existed As Boolean
-
- Application.ScreenUpdating = False
-
- existed = False
- For cts = 3 To Worksheets.Count
- If Sheets(cts).Name = myComboBox Then existed = True: Exit For
- Next cts
-
- ' 將工作表「請款書雛形」複製到所有工作表的最後
- If existed = False Then Worksheets("請款書雛形").Copy After:=Worksheets(Worksheets.Count): cts = Worksheets.Count
-
- With Sheets("銷售資料")
- .Range("A3").AutoFilter 2, myComboBox ' 自動篩選 B 欄 myComboBox(顧客)
- .Columns(2).Hidden = True ' 隱藏B欄
- .Range("A3").CurrentRegion.Copy ' 複製篩選出的 日期,商品,單價,數量,金額
- .AutoFilterMode = False
-
- With Worksheets(cts)
- .Name = myComboBox ' 設定工作表名稱
- .Range("A6") = myComboBox
- .Range("A11").CurrentRegion = "" ' 清除舊有資料
- .Range("A11").PasteSpecial xlPasteValuesAndNumberFormats ' 貼上 值及公式
- End With
- Application.CutCopyMode = False ' 取消複製的虛線
- .Columns(2).Hidden = False ' 取消隱藏B欄
- End With
-
- Application.ScreenUpdating = True
- End Sub
複製代碼
銷售管理修飾版.rar (40.49 KB)
|
|