0

我已经为我正在处理的项目包含了 vba 代码。提示用户输入玩家数量。该代码使用用户回答来设置数组的上限。我遇到的问题是代码允许用户输入数据,但不包括最后一个条目。

我加一的变量 i 通常最终会增加更多。

任何帮助,将不胜感激。

我尝试过使用 Do..Until 循环。

Option Explicit
Option Base 1

Sub players()
Dim playername() As String
Dim i As Long
Dim PlayerCount As Long

PlayerCount = InputBox("How many players are there?", "Player Count", "Enter the number of players")

ReDim playername(PlayerCount)

  For i = LBound(playername) To UBound(playername)
   playername(i) = InputBox("Enter player name:", "Player Name", "Player Name")
   MsgBox playername(i) ' test to see if user input is being read
    i = i + 1
  Next i

      Range("A2") = playername(i)  'attempting to add first user name in this cell
      Range("A2").Offset(0, 1).Select ' offset cell for other entries
      ActiveCell = playername(i)
4

1 回答 1

0

关于(稍作修改)代码:

For i = LBound(playername) To UBound(playername)
    i = i + 1
Next I

for循环已经从开始值运行i到结束值,您通常希望在循环中手动执行相同的操作。这样做最终会跳过值。

换句话说,您的循环将更正确地写为:

For i = LBound(playername) To UBound(playername)
    playername(i) = InputBox("Enter player name:", "Player Name", "Player Name")
    MsgBox playername(i) ' test to see if user input is being read
Next
于 2019-08-03T02:55:23.357 回答