返回列表 上一主題 發帖

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

回復 2# samwang


samwang大!

我拿了你之前的檔案來試,我移動了來源資料的位置執行會出現

1.執行階段錯誤9
   陣列索引超出範圍



2.執行階段錯誤13
    型態不符

這是該改哪邊?


謝謝

2021-09-02123123.jpg (372.56 KB)

2021-09-02123123.jpg

TOP

回復 21# wayne0303


    我拿了你之前的檔案來試,我移動了來源資料的位置執行會出現
>>可否附上檔案,謝謝

TOP

回復 22# samwang


再麻煩你有空再看看~

謝謝

取數字_型態不符.rar (51.85 KB)

TOP

回復 23# wayne0303


更改如下,謝謝
Arr = Range([u3], [u65536].End(3))

TOP

回復 24# samwang


可以了,謝謝samwang大的指導!

TOP

回復 24# samwang   



samwang大~不好意思又要麻煩你一下

搜尋資料下方有中文字的話會干擾...

取數字_文字干擾.rar (51.87 KB)

TOP

本帖最後由 samwang 於 2021-9-2 14:11 編輯

回復 26# wayne0303

Arr = Range([a11], [a65536].End(3)), 修改如下紅字
Arr = Range([a11], [a11].End(4))

End(3) = End(xlUp)
End(4) = End(xlDown)

TOP

回復 27# samwang


謝謝samwang大~

TOP

本帖最後由 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

        靜思自在 : 屋寬不如心寬。
返回列表 上一主題