返回列表 上一主題 發帖

[發問] 含有文字的加總

回復 24# 准提部林


    謝謝前輩
後學學習到 Range.Text 屬性與區域存格相對位置核取...等
心得註解如下,請前輩再指導

執行結果:


Function 加班數(Rng As Range, S1$) As Long
'↑加班數()自訂函數,Rng變數是儲存格變數,S1是字串變數,函數回傳值是長整數
Dim R&, S&, C%, V%, T$
'↑宣告變數:(R,S)是長整數變數,(C,V)是短整數變數,T是字串變數
If S1 = "" Then Exit Function
'↑如果S1這字串變數是空字元!,就結束自訂函數
For R = 1 To Rng.Rows.Count
'↑設順迴圈!R從1到 Rng變數的列數
    If Rng(R, 1) <> S1 Then GoTo r01
    '↑如果Rng變數裡的相對R迴圈列第1欄儲存格值不是 S1變數值
For C = 2 To Rng.Columns.Count
'↑設順迴圈!C從2到 Rng變數的欄數
    T = Rng(R, C).Text
    '↑令T這字串變數是 Rng變數裡的相對R迴圈列第C迴圈欄儲存格值
    '.Text:傳回指定之物件的格式化文字
    'https://learn.microsoft.com/zh-tw/office/vba/api/excel.range.text

    V = InStr(T, "加")
    '↑令V這短整數變數是 "加"字串在 T變數裡的字元位置
    If V > 0 Then 加班數 = 加班數 + Val(Mid(T, V + 1))
    '↑如果V變數 >0!就令 加班數()回傳:
    '加班數()+ 增量值
    '增量值:T變數取第(V變數+1)字開始的右側全部字元,再轉化為數字值

Next C
r01: Next R
End Function
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 脾氣嘴巴不好,心地再好也不能算是好人。
返回列表 上一主題