Board logo

標題: [發問] EXCEL列印時,是否可印出流水號? [打印本頁]

作者: vita    時間: 2011-1-21 09:20     標題: EXCEL列印時,是否可印出流水號?

因公司需求要設計一份表單,當中有一個欄位是流水號(流水號編碼:S1101001)
S不管、11代表西元年、01代表月份、001就是流水號
表格內容都是印出後自行填寫,但印出時會帶出流水號
如果我想要直接在列印的地方選擇列印份數,流水號就會自動到幾號,而下次列印時,又會自動接著下去
程式要怎麼寫?急急急!!!  :funk:
作者: Hsieh    時間: 2011-1-21 09:27

回復 1# vita

這跟你工作流程會有關聯
假如一天只印一次
那起始號不會有問題
若一天分多批列印那要把上次結束碼記在工作表內
以利下次列印取得起始碼
作者: vita    時間: 2011-1-21 09:47

因為我一次要先印出好幾份,可能是整個月的數量
而且這表格,不是只有一個人在使用,所以為了怕避免有表單號碼重覆,所以才想問是否有公式或程式可以使用

謝謝
作者: Hsieh    時間: 2011-1-21 09:56

回復 3# vita
假設B1為流水編號位置
每天自動歸零從1開始編碼
  1. Private Sub CommandButton1_Click()
  2. k = InputBox("列印份數")
  3. If Left([B1], 6) <> Format(Date, "yymmdd") Then [B1] = Format(Date, "yymmdd") & "000"
  4. x = Val(Right([B1], 3))
  5. For i = 1 To k
  6. [B1] = Format(Date, "yymmdd") & Format(x + i, "000")
  7.    Sheet1.PrintPreview
  8. Next
  9. End Sub
複製代碼

作者: vita    時間: 2011-1-21 10:17

不好意思,因為我還不會用VBA,所以是不是只要把你的程式COPY進去,就好了嗎?
還是我還要做什麼其他的動作?

謝謝!
作者: Hsieh    時間: 2011-1-21 14:49

回復 5# vita
看圖操作
[attach]4477[/attach]
作者: howard822    時間: 2012-3-23 00:18

本帖最後由 howard822 於 2012-3-23 00:22 編輯

不好意思∼我是EXCEL新手..沒有程式概念..
透過搜尋知道貴站∼想請教指導我一下∼
我的需求是每天都有三聯單報表要出貨,
ㄧ張報表ㄧ個SHEET..ㄧ張報表列印ㄧ次∼可是流水號要繼續累積∼

那我把該程式碼改成後:

Private Sub CommandButton1_Click()
If Left([I1], 6) <> Format(Date, "yymmdd") Then [I1] = Format(Date, "yymmdd") & "000"
x = Val(Right([I1], 3))
[I1] = Format(Date, "yymmdd") & "-" & Format(x + 1, "000")
   Sheet1.PrintPreview
End Sub

在原始SHEET可以正常表現,沒問題。
-----------------------------------------------------------------
可是我將SHEET複製(Ctrl+左鍵拖曳)之後~
功能無法正常使用了∼
請問我應該要怎麼做?
作者: howard822    時間: 2012-3-27 00:25

請問版主可以指導小第一下嗎?
作者: register313    時間: 2012-3-27 22:34

回復 8# howard822
不知道這是不是你要的,試試看

1.加入一張空白的工作表,工作表名稱為"計數"
[attach]10173[/attach]

2.sheet1工作表模組
  1. Private Sub CommandButton1_Click()
  2. With Sheets("計數")
  3.   If Left(.[I1], 6) <> Format(Date, "yymmdd") Then
  4.      For Each Sh In Sheets
  5.        Sh.[I1] = ""
  6.      Next
  7.      .[I1] = Format(Date, "yymmdd") & "-000"
  8.   End If
  9.   x = Val(Right(.[I1], 3))
  10.   If ActiveSheet.[I1] = "" Then
  11.      .[I1] = Format(Date, "yymmdd") & "-" & Format(x + 1, "000")
  12.      ActiveSheet.[I1] = .[I1]
  13.   End If
  14.   ActiveSheet.PrintPreview
  15. End With
  16. End Sub
複製代碼
3.其他工作表都用sheet1去複製(ctrl+左鍵)

4.操作看看
作者: Hsieh    時間: 2012-3-27 23:02

回復 8# howard822


    在原始SHEET可以正常表現,沒問題。
這句話意思應該表示程式碼是正確了
但是,你說複製後就不行
我猜是Sheet1.PrintPreview的問題
Me.PrintPreview就會隨著工作表模組變動列印工作表了
不知道你的問題是否如此




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)