|
發表於 2015-11-30 11:11:07
|
顯示全部樓層
Sub 列印並跳號()
Dim xR As Range, YY, i&
Set xR = Range("J12")
If xR Like "No.######" = False Then MsgBox "※編號空白或錯誤!須為 No. + 六碼數字 ": Exit Sub
ReKey:
YY = Application.InputBox("請輸入列印張數!", , 1)
If CStr(YY) = "False" Then Exit Sub
If Val(YY) <= 0 Then MsgBox "〔列印張數〕未輸入或錯誤! ": GoTo ReKey
For i = 1 To Val(YY)
ActiveSheet.PrintOut
xR = "No." & Format(Val(Right(xR, 6)) + 1, "000000")
Next i
End Sub
最簡單的改法,紅色字這行拿掉,不檢查輸入格式
藍色文字行這段是格式化頁碼的地方,這邊可以改成
xR = Val(xR) + 1
拿掉所有格式化設定,直接修改儲存格數值,數值+1
我嘗試著改成
xR = "No." & Val(RIGHT(xR,6)) + 1
必須加上RIGHT函數是因為,J12儲存格內容不只有數值,是No.xxxxxx, XXXXXX才是數值
也就是混合在同一格的話,必須用函式取出數值部分來做加1運算
但問題在於,第一頁,巨集不會執行,所以頁碼變成
No.000001,NO.2,No.3 這部分有待高明
所以我嘗試用笨蛋方式,J12儲存格採用 xR = Val(xR) + 1,只處理頁碼數字
J11儲存格則是 "頁碼:",或者要採用這邊的"No." 格式置右對齊
另外,如果要變更頁碼顯示位置,就更改Set xR = Range("J12") J12改成你要的位置就好.
|
|