返回列表 上一主題 發帖

[分享] 銷售管理完成版

回復 1# kai6929
  1. Private Sub myComboBox_Change()
  2.      Call 製作請款書(myForm.myComboBox.Text)
  3. End Sub
複製代碼
如果修改成.... ,視覺感受會比較佳!
  1. Private Sub myComboBox_Change()
  2.     myForm.Hide
  3.     Call 製作請款書(myForm.myComboBox.Text)
  4. End Sub
複製代碼

TOP

本帖最後由 c_c_lai 於 2012-11-20 07:38 編輯

回復 3# GBKEE
回復 1# kai6929
的確是個蠻不錯的範例分享,尤其是 AdvancedFilter 進階篩選的實務應用,
其細膩地處理與表達均十分精湛,謹此感謝 GBKEE 的線上指導。
目前,我將 #3 的程式略為修改成:如果清單 (ComboBox) 內工作表業已存在,
則再次將它開啟,否則將工作表「請款書雛形」複製到所有工作表的最後。
如此,才不致因重覆開啟而導致的錯誤中斷執行 (GBKEE 的語法是直接寫入到「請款書雛形」)。
(#1 的原本用意,可能是想保留原始母表,而於選單時再另行新增「請款書」)
  1. Private Sub 製作請款書()
  2.     Dim cts As Integer, existed As Boolean
  3.    
  4.     Application.ScreenUpdating = False
  5.    
  6.     existed = False
  7.     For cts = 3 To Worksheets.Count
  8.         If Sheets(cts).Name = myComboBox Then existed = True: Exit For
  9.     Next cts
  10.    
  11.     '  將工作表「請款書雛形」複製到所有工作表的最後
  12.     If existed = False Then Worksheets("請款書雛形").Copy After:=Worksheets(Worksheets.Count): cts = Worksheets.Count
  13.         
  14.     With Sheets("銷售資料")
  15.         .Range("A3").AutoFilter 2, myComboBox                           '  自動篩選 B 欄 myComboBox(顧客)
  16.         .Columns(2).Hidden = True                                       '  隱藏B欄
  17.         .Range("A3").CurrentRegion.Copy                                 '  複製篩選出的 日期,商品,單價,數量,金額
  18.         .AutoFilterMode = False
  19.          
  20.         With Worksheets(cts)
  21.             .Name = myComboBox                                          '  設定工作表名稱
  22.             .Range("A6") = myComboBox
  23.             .Range("A11").CurrentRegion = ""                            '  清除舊有資料
  24.             .Range("A11").PasteSpecial xlPasteValuesAndNumberFormats    '  貼上 值及公式
  25.         End With
  26.         Application.CutCopyMode = False                                 '  取消複製的虛線
  27.         .Columns(2).Hidden = False                                      '  取消隱藏B欄
  28.     End With
  29.    
  30.     Application.ScreenUpdating = True
  31. End Sub
複製代碼
銷售管理修飾版.rar (40.49 KB)

TOP

回復 25# GBKEE
我已經將 Code 如您的語法修正了,我覺得用 myComboBox.Value 來取代 cts 會更貼切,謝謝您指導!
  1.     '  將工作表「請款書雛形」複製到所有工作表的最後
  2.     If existed = False Then Worksheets("請款書雛形").Copy After:= Worksheets
  3.                             Worksheets.Count): [color=Red]ActiveSheet.Name = myComboBox[/color]
  4.     With Sheets("銷售資料")
  5.         .Range("A3").AutoFilter 2, myComboBox  ' 自動篩選B欄myComboBox(顧客)
  6.         .Columns(2).Hidden = True              '  隱藏B欄
  7.         .Range("A3").CurrentRegion.Copy   ' 複製篩選出的日期,商品,單價,數量,金額
  8.         .AutoFilterMode = False
  9.          
  10.         With Worksheets([color=Red]myComboBox.Value[/color])
  11.            [color=Red] '  .Name = myComboBox  [/color]            '  設定工作表名稱
複製代碼

TOP

        靜思自在 : 閒人無樂趣,忙人無是非。
返回列表 上一主題