返回列表 上一主題 發帖

自動填入未做列印標記的序號

依lpk187所提供的程式碼,稍作event的修改,現已大致完成所期望的功能

但不曉得是否能讓另存的新檔存為.jpg or pdf檔呢?  自已試著改結果是不行的~呵
此目的,是不希望User能自行開啟檔案修正~

以上~謝謝

TOP

回復 3# chi830


    在ThisWorkbook貼上這個代碼試試
  1. Private Sub Workbook_BeforePrint(Cancel As Boolean)
  2. Pr = Worksheets("統計").Range("B2")
  3.     For Each fi In Worksheets("序號").Range("A2:A" & Worksheets("序號").Range("A65536").End(xlUp).Row)
  4.         If Pr = fi Then
  5.             Worksheets("序號").Cells(fi.Row, "B") = "V"
  6.             Exit For
  7.         End If
  8.     Next
  9. Patha = ThisWorkbook.Path & "\"
  10.     Worksheets("統計").Select
  11.     Range("A1:L10").Select
  12.     Selection.Copy
  13.     Workbooks.Add (xlWBATWorksheet)
  14.     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  15.         :=False, Transpose:=False
  16.     Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
  17.         SkipBlanks:=False, Transpose:=False
  18.     Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
  19.         SkipBlanks:=False, Transpose:=False
  20.     ActiveWorkbook.Worksheets("工作表1").Name = Pr & "統計"
  21.     Range("A1").Select
  22.     ActiveWorkbook.SaveAs Filename:=Patha & Pr & ".xlsb", _
  23.         FileFormat:=xlExcel12, CreateBackup:=False
  24. Workbooks(Pr & ".xlsb").Close True
  25. End Sub
複製代碼

TOP

太棒了~感lpk187先進的回復, 有收獲 ~讚
   改用Button的方式實作,ok~

   但現在想做更進化的功能(不採用button)
   1、user真的列印後,自動回寫序號頁B欄的V,這裡的程式碼應如何修改?
   2、同時列印完,'統計頁'要另存成檔名為'統計頁'B2的excel,例如No.20150007.xls
         統計頁這裡是樞鈕所跑出來的結果值,另存檔後,所求是要原篩選的內容值

  以上~再請先進們賜教~

TOP

本帖最後由 lpk187 於 2015-3-3 20:13 編輯
  1. Sub 列印()
  2. '
  3. ' 巨集1 巨集
  4. '
  5. '你列印的程式代碼後加上下面這2句

  6. End1 = Worksheets("序號").Columns("A").Find([B2], , , xlWhole, , 2).Row
  7. Worksheets("序號").Cells(End1, "B") = "V"
  8. End Sub


  9. '在 "統計" 的工作表的程式碼中貼上下面這個程序
  10. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  11. If Target.Address = [B2].Address Then
  12.         For Each 序號 In Worksheets("序號").Range("A2:A" & Worksheets("序號").Range("A65535").End(xlUp).Row)
  13.     ro = 序號.Row
  14.     If Sheets("序號").Cells(ro, "B") = "" Then
  15.         [B2] = Worksheets("序號").Cells(ro, "A")
  16.         End
  17.     End If
  18.     Next
  19. End If
  20. End Sub
複製代碼
回復 1# chi830

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題