Board logo

標題: [發問] 序號自動跳號及保留字體 [打印本頁]

作者: BV7BW    時間: 2022-12-31 18:18     標題: 序號自動跳號及保留字體

各位 先進前輩 老師 新年好
  祝 各位新進前輩 老師
         新年 心想事成 萬事如意

請教先進前輩 老師
如何將E5籃1序號輸出後自動+1.但保留"籃"字.例籃1後跳入籃2
作者: 准提部林    時間: 2023-1-1 17:22

T=[E5]
V=VAL(MID(T,2))
[A1]=T
[E5]=LEFT(T,1) & V+1
作者: BV7BW    時間: 2023-1-2 17:09

回復 2# 准提部林
准提部林 老師你好 新年好


謝謝老師指導

目前整理中.還有些不明地方
我是以老師指導出貨作業D版V01_10905版中修改
原本(e5)是空格現在需給予籃號(現在是用手動去調整)
是否可以跟單號模式一樣輸出後自動跳號例籃1輸出後跳為籃2)
這段我還不明如何修改
請老師再次指教 謝謝
作者: Andy2483    時間: 2023-1-3 09:32

本帖最後由 Andy2483 於 2023-1-3 09:34 編輯

回復 3# BV7BW


    謝謝前輩發表此主題與範例
學藉此主題練習觸發的知識,以下是後學的建議方法,請參考

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'↑在預設的按兩下動作之前,按兩下工作表時,即發生此事件。
'https://learn.microsoft.com/zh-tw/office/vba/api/excel.worksheet.beforedoubleclick
Dim T$, V%
'↑宣告變數:T是字串變數,V是短整數變數
With Target
'↑以下是關於觸發的程序
   If .Address = "$E$5" Then
   '↑雙擊滑鼠左鍵如果儲存格位址是 "$E$5" ??
      T = [E5]
      '↑令T這字串變數是[E5]的內容字串
      V = Val(Mid(T, 2))
      '↑令V這整數變數是 T字串變數第2個字開始後面的所有字元,再以Val()轉化為數值
      http://forum.twbts.com/viewthrea ... a=pageD1&page=2
      [E5] = Left(T, 1) & V + 1
      '↑令[E5]儲存格值是 T字串變數第1個字,連接V整數變數+1,所組成的新字串
      Cancel = True
      '↑取消原儲存格左鍵預設的按兩下動作
      Beep
      '↑發出嗶聲
   End If
End With
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
'↑當使用者或外部連結變更工作表中的儲存格時會發生此事件。
'https://learn.microsoft.com/zh-tw/office/vba/api/excel.worksheet.change
Dim xF As Range, Da&, Db&, xRow&, VL
'↑宣告變數:xF是儲存格變數,(Da,Db,xRow)是長整數變數,VL是通用型變數
With Target
'↑以下是關於觸發的程序
     If .Address = "$K$1" Then
     '↑儲存格值編輯如果儲存格位址是 "$K$1"  ??
        Set xF = [K2:K6000].Find(.Value, LookIn:=xlValues, lookat:=xlWhole)
        '↑令xF這儲存格變數是 用Find()方法,以[K1]值尋找[K2:K6000]儲存格裡 值全部相同的儲存格
        'https://learn.microsoft.com/zh-tw/office/vba/api/excel.range.find
        If Not xF Is Nothing Then xRow = xF.Row
        '↑如果xF這儲存格變數有找到,就令xRow變數是 xF這儲存格變數的列號數字
        If .Value = "" Then xRow = 3
        '↑如果[K1]值是 空字元,就令xRow變數是 3
        If xRow > 0 Then ActiveWindow.ScrollRow = xRow: Range("M" & xRow + 1).Select
        '↑如果xRow變數 > 0,就讓 xRow變數列於視窗在至頂位置:令儲存格游標在M欄的下一列上
     End If
     Beep
End With
End Sub
作者: BV7BW    時間: 2023-1-5 22:56

回復 4# Andy2483
   Andy248 先進先生你好 謝謝你指教
目前經測試完全成功運作.以可使用
前提須事先點擊E5格才會自動跳號.
是否可搭配輸出按紐鍵.自動跳號
例V2(1111209001).E5應是(籃1)
經輸出後 V2已自動跳號為(1111209002).E5則可跟V2最後碼(2)跳為(籃2)
也就是E5是跟V2最後碼同步跳動
有勞先進指導 謝謝
作者: Andy2483    時間: 2023-1-6 07:42

本帖最後由 Andy2483 於 2023-1-6 07:57 編輯

回復 5# BV7BW


    謝謝前輩回復
後學建議如下:

前輩需求: 例V2(1111209001).E5應是(籃1),經輸出後 V2已自動跳號為(1111209002).E5則可跟V2最後碼(2)跳為(籃2)

E5輸入公式  = "籃" & INT(RIGHT(V2,2))
1."籃" 文字連接  INT()函數 回傳的數字,連接後就變成新文字串
INT 函數:  將數字無條件捨位至最接近的整數
https://support.microsoft.com/zh-tw/office/int-%E5%87%BD%E6%95%B8-a6c4af9e-356d-4369-ab6a-cb1fd9d343ef

2.將被無條件捨位至最接近的整數的值是 RIGHT(V2,2) 應該產生的
RIGHT(V2,2)=RIGHT("1111209001" ,2) = "01"
RIGHT 函數:RIGHT 會傳回一文字字串的最後字元或字元組 (依據您所指定的字元組數)。
https://support.microsoft.com/zh-tw/office/right-rightb-%E5%87%BD%E6%95%B8-240267ee-9afa-4639-a02b-f19e1786cf2f

結語:
1."籃"文字 連接 把V2儲存格值取右邊 2個文字後,轉換成 整數 的新字串
2.把  "1111209001" 取右邊 2個文字的結果是 "01" 字串,再將 "01" 字串 轉換成 整數 1
3.把  "1111209002" 取右邊 2個文字的結果是 "02" 字串,再將 "02" 字串 轉換成 整數 2
4.把  "1111209099" 取右邊 2個文字的結果是 "99" 字串,再將 "99" 字串 轉換成 整數 99
5.把  "1111209102" 取右邊 2個文字的結果是 "02" 字串,再將 "02" 字串 轉換成 整數 2,
如果取右邊兩個字就與第3項重複了,所以需要考慮清楚:取2字元 或 取3字元
作者: BV7BW    時間: 2023-1-7 07:10

本帖最後由 BV7BW 於 2023-1-7 07:12 編輯

回復 6# Andy2483


    感謝Andy248 先進 細心指導
完全理解運用中
尤其這段如果取右邊兩個字就與第3項重複了,所以需要考慮清楚:取2字元 或 取3字元
沒想到非常需要細心事件

謝謝 Andy248 先進




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