【发布时间】:2018-08-04 08:01:44
【问题描述】:
我有以下代码:
Private Sub ChangeAccountNames_Click()
Dim AccountName As String
Dim Rng As Range
Dim InputQuestion As String
Dim i As Integer
Dim s As Worksheet
Set s = Sheets("Essential Info")
i = Cells(3, 9)
Do
Set Rng = Sheets("Essential Info").Range("I2:I13")
InputQuestion = "Please enter in a bank account name: " & vbNewLine & "Click Close once you are done"
AccountName = InputBox(InputQuestion)
Rng.Value = AccountName
i = i + 1
Loop Until i = 10
End Sub
我需要它按以下顺序做的是:
- 单击按钮时打开输入框 - 完成
- 要求用户输入帐户名 - 完成
- 将帐户名存储在字符串中 - 完成(AccountName 变量)
- 将 AccountName 写入工作表“基本信息”中的单元格 I3 - 有点工作。它插入到正确的工作表,但将其写入所有单元格 I3:I13,相信它的 Do 循环布局错误
- 将单元格 I3 向下移动,使其变为 I4 以准备下一个名称输入 - 不起作用,需要帮助。是否认为我可以将 1 个单元格添加到 Cells(0,0) 变量?
- 只允许细胞上升到 I13 - 工作??将此值存储在 i 中并计算每个循环,它不会超调。
- 循环回到第 1 步,直到我达到定义的限制或用户关闭 InputBox - 它循环,但我相信我所有问题所在的循环
这里有当前未使用的变量和非常混乱的信息,我已将它们添加为个人占位符。 Stepthrough 的行为似乎也几乎符合我的需要,但我知道这完全是一团糟
【问题讨论】:
-
我认为这些问题中的每一个都应该是一个单独的问题。一口气回答有点宽泛。您将
rng声明为Range("I2:I13"),但您想写信给I3。为什么I2是该范围的一部分?为什么I4:I13是该范围的一部分?让所有这些单元格都挂在这个范围变量中有什么好处?如果您坚持使用rng,那么您可以引用您要写入的确切单元格Rng.Cells(2).Value = AccountName但是,为什么不直接使用Sheets("Essential Info").Range("I3").Value = AccountInfo这不是更清楚吗?