Private Sub Cmd_A1_Click() '建立條碼寫入按鈕
Dim TT$, T$, V%, VV%, R&, i&, Arr, xF As Range
'↑宣告變數:(TT,T)是字串變數,(V,VV)是短整數變數,(R,i)是長整數變數,
'Arr是通用型變數,xF是儲存格變數
Un = 0: Call 檢查輸入值
'↑令Un這短整數變數是 0 :執行 檢查輸入值 副程式
If zK = "A00000" Then MsgBox "*尚未輸入任何資料! ": Exit Sub
'↑如果zK這字串變數是 "A00000"!就跳出提示窗~ :結束程式執行
If zK = "A22222" Then MsgBox "*編輯內容與原資料相同,未變更! ": Exit Sub
'↑如果zK這字串變數是 "A22222"!就跳出提示窗~ :結束程式執行
If InStr(zK, "0") Then MsgBox "*資料輸入不完全或錯誤,請檢查! ": Exit Sub
'↑如果zK這字串變數裡有包含"0"字元!就跳出提示窗~ :結束程式執行
zDay = Now: If zMode = 2 Then zDay = Lab_Date.Caption
'↑令zDay這通用型變數是現在時間 :如果zMode變數是 2!就令zDay變數是 Lab_Date標籤回傳值
TT = Format(zDay, "mmdd") & Join(Yrr, "")
'↑令TT這字串變數是 zDay變數轉換字串取月月日日4碼,連接(Yrr變數以空字元結合成的字串)
'---------------------------
If zMode = 2 Then '編輯更改--刪除原資料
'↑如果zMode變數是 2?
Set xF = Sheets("Database").Range("G:G").Find(TextBox5.Text, Lookat:=xlWhole)
'↑令xF這儲存格變數是以 Find()方法回傳的儲存格物件:
'輸入窗TextBox5文字是 要搜尋的資料,搜尋範圍是 "Database"工作表G欄,條件:值全部相同
If Not xF Is Nothing Then xF.EntireRow.Delete
'↑如果xF變數有搜尋到!就令xF變數所在的列刪除,儲存格會往上遞補
End If
With Sheets("Database")
'↑以下是關於 "Database"工作表 的程序
R = .Cells(Rows.Count, 1).End(3).Row
'↑令R這長整數變數是該表A欄最後一個有內容儲存格 列號
Arr = .Range("A1:G" & R)
'↑令Arr是二維陣列!以該表[A1]到G欄R變數列範圍儲存格值倒入
For i = R To 2 Step -1
'↑設逆迴圈!!i從R變數到2,逐次減 1
T = Arr(i, 7)
'↑令T這字串變數是i迴圈列7欄Arr陣列值
If Left(T, 14) = TT Then
'↑如果T變數取左側14個字元值剛好是 TT字串變數值?
V = Val(Mid(T, 15, 2))
'↑令V這短整數變數是 Val()函數轉化數字回傳的值,
'Val(T變數從第15字取2字元)
If V > VV Then VV = V
'↑如果V變數大於 這VV短整數變數!就令VV變數 = V變數
End If
Next i
Xrr(1) = zDay: Xrr(7) = TT & Format(VV + 1, "00")
'↑令Xrr這一維陣列1索引號陣列值是 zDay變數
'↑令Xrr這一維陣列7索引號陣列值是 TT變數連接 VV變數+1後以兩碼回傳的字串
.Range("A" & R + 1).Resize(1, 7) = Xrr
'↑令該表A欄R變數+1列位置儲存格擴展向右7欄範圍儲存格值 以Xrr一維陣列值帶入
With .Range("A1:G" & R + 1)
'↑以下是關於該表[A1]到 G欄R變數+1列範圍儲存格的程序
.Sort Key1:=.Item(1), Order1:=xlAscending, _
Key2:=.Item(7), Order2:=xlAscending, Header:=xlYes
'↑令該範圍儲存格做排序第一層以A欄順排序,第二層以G欄做順排序,有標題列
End With
End With
MsgBox "*資料建立完成! "
'↑跳出提示窗~~
If zMode = 2 Then Call 物件_初始狀態: zMode = 0 Else Call 清除資料: TextBox1.SetFocus
'↑如果zMode變數是 2!就執行副程式 Sub 物件_初始狀態(),令zMode變數是 0,
'否則就執行副程式 Sub 清除資料(),令鍵盤游標落在 TextBox1輸入窗上
End Sub作者: Andy2483 時間: 2023-1-18 14:36
Option Explicit
Sub Mid特別用法_字串的指定字元數置換()
Dim Y$, Z$
Y = "ABCDEFG": Z = Y
Mid(Y, 2, 10) = "bcdefghijk"
MsgBox Y
Mid(Z, 2, 10) = "b"
MsgBox Z
End Sub作者: v03586 時間: 2023-1-19 06:32