返回列表 上一主題 發帖

[發問] 提取字串內數字比大小

本帖最後由 Andy2483 於 2023-12-1 15:14 編輯

謝謝論壇,謝謝各位前輩
後學藉此帖練習字串反向與陣列,學習方案如下,請各位前輩指教
執行前:


執行結果:


Option Explicit
Sub TEST()
Dim Brr, S, i&, V1, Ve
'↑宣告變數
Brr = Range([B1], [B65536].End(xlUp))
'↑令Brr變數是 以指定的儲存格範圍值的二維陣列
For i = 2 To UBound(Brr)
'↑設順迴圈!i從2到Brr陣列縱向最大索引列號
   S = Split(Trim(Brr(i, 1)) & "-", "-")
   '↑令S變數是分割字串的一維陣列
   V1 = Val(StrReverse(Mid(Val("1" & StrReverse(S(0))), 2)))
   '↑令V1變數是將0索引號陣列值字串反轉後,在前方連接字串"1"成為新字串,
   '再此新字串轉為數值,取第2字之後的字,接著將此字串反轉回來,最後轉為數值

   Ve = Val(S(UBound(S) - 1))
   '↑令Ve變數是倒數第2個陣列值轉為數值
   If V1 > 390 Or UBound(S) - 1 = 0 Then Brr(i - 1, 1) = "": GoTo i01
   '↑如果藍色區域數值大於390 或 Brr(i, 1)字串裡沒有"-",
   '就令陣列放結果的陣列值清除,跳到標示的位置繼續執行

   Brr(i - 1, 1) = Switch((Ve <= 180) * (Ve > 90), 2, Ve <= 90, 1)
   '↑令陣列放結果的陣列值寫入正確值
i01: Next
[D2].Resize(UBound(Brr) - 1) = Brr
'↑令[D2]儲存格擴展所需範圍儲存格值以 Brr陣列值帶入
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題