簡體   English   中英

在Excel中使用公式等功能

[英]Using functions like formulas in Excel

我正在嘗試使用公式來獲取字母表字母。

式:

=Keytable(RANDOM,ROW())

功能:

Function KeyTable(seed As Long, position As Long) As String
    Dim i As Long
    Stop
    Dim calpha(1 To 26) As String
    Dim alpha(1 To 26) As String

    For i = 1 To 26
        alpha(i) = Chr(i + UPPER_CASE - 1)
    Next i

    For i = 1 To 26
        calpha(i) = alpha(seed Mod 27 - i)
    Next i
    Stop
    KeyTable = calpha(position)
End Function

結果:

#Value!

當我逐步執行該功能時,它永遠不會到達第二個停靠點。 怎么了?

RANDOM不是Excel中的函數。 RAND()是,它返回0到1之間的一個float 。您需要一個integer來進行模量計算。

要獲取隨機整數,請使用:

INT ((upperbound - lowerbound + 1) * RAND() + lowerbound)

然后,一旦seed Mod 27 - i變為0或更小,該函數就會消失,因為無法在VBA(或大多數語言)中將數組索引為0或更小。


但是,實際上,您需要為隨機字母做的所有事情是:

=CHAR(RANDBETWEEN(65,90))

此代碼將返回隨機字母:

Function GetLetter()
    Dim letters As String
    Dim randomIndex As Byte

    letters = "abcdefghijklmnopqrstuvwxyz"
    randomIndex = Int((26 - 1 + 1) * Rnd() + 1) //Get random number between 1 and 26

    GetLetter = VBA.Mid$(letters, randomIndex, 1)
 End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM