標題:
[發問]
單號自動編號以"更新當日日期"後自動流水號?
[打印本頁]
作者:
elaine688
時間:
2016-2-4 10:50
標題:
單號自動編號以"更新當日日期"後自動流水號?
請問版上前輩
我有一段vba寫法, 其銷貨單單號寫法是:
Sheets("銷貨單").Select
Range("B5") = Format(Date, "emmdd") & "-" & Format(j, "0000") + 1
單號:1050202-7
是用民國年月日-加上流水號
但是, 像上例比如當日自動序號到當日使用的流水號....
比如今日是105/02/04
要怎麼寫, 它的單號自動編號才能以"更新當日日期"後自動流水號?
作者:
luhpro
時間:
2016-2-8 20:51
只要加個日期變數紀錄上次執行時的日期,
而在每次產生流水號前比對兩日期若不一致表示換日,
此時再將流水號歸零即可.
Dim dDate As Date
Sheets("銷貨單").Select
If dDate <> Date Then
j = 0
dDate = Date
End If
Range("B5") = Format(Date, "emmdd") & "-" & Format(j, "0000") + 1
複製代碼
作者:
Hsieh
時間:
2016-2-8 22:31
回復
1#
elaine688
這要回去討論資料庫,看看你儲存幾筆當日資料
然後以該數值賦予程式中的 j
Range("B5")= Format(Date, "emmdd-" & Format(j + 1, "000"))
作者:
c_c_lai
時間:
2016-2-9 06:30
回復
1#
elaine688
亦可如此:
Private Sub Workbook_Open()
If TimeValue(Now) >= "上午 08:45:00" Then [B1] = 1
End Sub
Sub Ex()
[A1] = SerialNo
[A2] = SerialNo
[A3] = SerialNo
End Sub
Function SerialNo() As String
Static cJ As Integer
If [B1] = 1 Then cJ = 0
[B1] = 0
SerialNo = Format(Date, "emmdd") & "-" & Format(cJ + 1, "00000")
cJ = cJ + 1
End Function
複製代碼
作者:
准提部林
時間:
2016-2-9 13:12
本帖最後由 准提部林 於 2016-2-9 13:36 編輯
銷貨單號有以下問題, 可能須考慮:
1.日期可能不是當天_例如:先以手開單出貨,隔幾天補登
2.或因臨近月結日,應客戶規定須計入下月帳,則須以跨月帳日期輸入,
例如:每月月結日為20日,因客戶可能21或22日才收到貨,
本筆貨款應計入下月帳,為使應收帳款日期一致,可能須將銷貨單日期改為21日
3.銷貨單可能有某些原因而刪除,這會產生〔跳號〕,
若僅以日期去計算筆數,再以〔筆數〕加一,應還不是最正確的做法
最好能以〔FIND〕銷貨明細中〔指定日期.EMMDD]最後一筆單號,以其〔序號〕加一!
假設:A2為〔銷貨日期〕.A3為〔銷貨單號〕,銷貨明細工作表的〔單號〕在B欄(有排序)
Dim DD&, xF As Range, S%
DD = Format([A2], "emmdd")
Set xF = [銷貨明細!B:B].Find(DD, SearchDirection:=xlPrevious)
If Not xF Is Nothing Then S = Right(xF, 3) + 1 Else S = 1
[A3] = DD & Format(S, "-000")
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)