2020年6月4日 星期四

Excel VBA 用for + array + Run 取代判別式執行函數

早上遇到群有問的一個問題,希望在能不用判別式的方式就能做到判別並執行程式,這樣的方式之前就有寫過,但這次被人提出來就簡單做一下,下圖是原本就由判別式的作法。
透過以下程式做法來做切換,以for回傳搭配亂數來運作。
Sub aa(a As Integer, b As String)
    Debug.Print "a", a, b
End Sub

Sub bb(a As Integer, b As String)
    Debug.Print "b", a, b
End Sub

Sub cc(a As Integer, b As String)
    Debug.Print "c", a, b
End Sub

Sub main()
    Dim a
    a = Array("aa", "bb", "cc")
    Randomize
    Run a(Int(Rnd() * (UBound(a) + 1))), Int(Rnd() * 100) + 1, "abc"
End Sub
執行畫面。



沒有留言:

張貼留言