生成可变数量的字符串(错误消息"需要常量表达式")

时间:2015-08-14 20:33:58

标签: excel vba excel-vba excel-2013

我正在创建一个概率宏,用户输入一个大于零的整数。然后,此整数创建与其值相同数量的字符串(如果整数为5,则创建5个字符串,然后创建字符串The users name is <%= user.name %>. "Player1" ... "Player2")。最简单的方法是什么?

现在我正在使用:

"Player5"

当我运行此功能时,我得到:

  
    

编译错误:

         

需要常量表达

  

3 个答案:

答案 0 :(得分:0)

你不能Dim 1 to n,但可以Redim

类似的东西:

   Dim Player(1 To 15) 
   Dim intMaxPlayer as Integer
   intMaxPlayer = 10
    ...
   ReDim player(1 to intMaxPlayer)

此外,您的Players循环

中未定义Do Until

答案 1 :(得分:0)

我可能在这里忽略了这一点,但我不明白为什么你需要一个数组。这将创建x字符串“Player1”“Player2”...“Playerx”:

Sub FunctionPlayersCount()

Dim a As Integer
a = 1

Do While a <= NumPlayers

    MsgBox "Player" & CStr(a)
    a = a + 1 ' add 1 each time, approaching NumPlayers value

Loop

End Sub

答案 2 :(得分:0)

  1. 根据玩家数量创建一个数组。您需要使用ReDim才能将变量用于数组大小:

    intPlayers = 5
    ReDim Players(1 To intPlayers) As String
    
  2. 使用For循环填充数组...

    For i = 1 To UBound(Players)
        Players(i) = "Player" & i
    Next
    
  3. 现在你有一个名为Players的五元素数组,其中包含五个"PlayerX"字符串。