返回列表 上一主題 發帖

[分享] 銷售管理完成版

回復 1# kai6929
不錯的分享,但同 一顧客選第二次時,在新增工作表的命名會錯誤
純參考;表單的程式碼
  1. Private Sub myComboBox_Change()
  2.    ' Call 製作請款書(myComboBox.Text)
  3.      製作請款書 '(myComboBox.Text)
  4. End Sub
  5. Private Sub UserForm_Initialize()
  6.     'myForm.myComboBox.List = Array("A公司", "B建設公司", "C電器公司", "D不動產公司") '
  7.     '下列程式碼 可根據 "銷售資料" B欄的顧客 建立 myComboBox 的 List
  8.     With Sheets("銷售資料")
  9.         .Range("B3", .[B3].End(xlDown)).AdvancedFilter xlFilterCopy, , .Cells(1, Columns.Count), True
  10.         'AdvancedFilter 進階篩選 不重複的顧客名單到.Cells(1, Columns.Count)最後一欄
  11.         With .Range(.Cells(2, Columns.Count), .Cells(2, Columns.Count).End(xlDown)) '第2列到最後有資料的列
  12.             myComboBox.List = .Value
  13.             .EntireColumn.Clear
  14.         End With
  15.     End With
  16. End Sub
  17. Private Sub 製作請款書()
  18.      Application.ScreenUpdating = False
  19.      With Sheets("銷售資料")
  20.         .Range("A3").AutoFilter 2, myComboBox                           '自動篩選 B欄 myComboBox(顧客)
  21.         .Columns(2).Hidden = True                                       '隱藏B欄
  22.         .Range("A3").CurrentRegion.Copy                                 '複製篩選出的 日期,商品,單價,數量,金額
  23.         .AutoFilterMode = False
  24.         With Sheets("請款書雛形")
  25.             .Range("A6") = myComboBox
  26.             .Range("A11").CurrentRegion = ""                            '清除舊有資料
  27.             .Range("A11").PasteSpecial xlPasteValuesAndNumberFormats    '貼上 值及公式
  28.         End With
  29.         Application.CutCopyMode = False                                 '取消複製的虛線
  30.         .Columns(2).Hidden = False                                      '取消隱藏B欄
  31.      End With
  32.      Application.ScreenUpdating = True
  33. End Sub
複製代碼

TOP

回復 22# c_c_lai
工作表[銷售資料][請款書雛形]如有移動到第2工作表以後會有錯誤發生
建議修改如下:
  1. Private Sub 製作請款書()
  2.     Dim cts As Integer, existed As Boolean
  3.     Application.ScreenUpdating = False
  4.     existed = False
  5.     For cts = 1 To Worksheets.Count
  6.         If Sheets(cts).Name = myComboBox Then existed = True: Exit For
  7.     Next cts
  8.     '  將工作表「請款書雛形」複製到所有工作表的最後
  9.     If existed = False Then
  10.         Worksheets("請款書雛形").Copy After:=Worksheets(Worksheets.Count)
  11.         ActiveSheet.Name = myComboBox
  12.     End If
  13.     With Sheets("銷售資料")
  14.         .Range("A3").AutoFilter 2, myComboBox                           '  自動篩選 B 欄 myComboBox(顧客)
  15.         .Columns(2).Hidden = True                                       '  隱藏B欄
  16.         .Range("A3").CurrentRegion.Copy                                 '  複製篩選出的 日期,商品,單價,數量,金額
  17.         .AutoFilterMode = False
  18.         With Worksheets(myComboBox.Value)
  19.            ' .Name = myComboBox                                          '  設定工作表名稱
  20.             .Range("A6") = myComboBox
  21.             .Range("A11").CurrentRegion = ""                            '  清除舊有資料
  22.             .Range("A11").PasteSpecial xlPasteValuesAndNumberFormats    '  貼上 值及公式
  23.         End With
  24.         Application.CutCopyMode = False                                 '  取消複製的虛線
  25.         .Columns(2).Hidden = False                                      '  取消隱藏B欄
  26.     End With
  27.     Application.ScreenUpdating = True
  28. End Sub
複製代碼

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題