【发布时间】:2018-01-23 22:10:17
【问题描述】:
VBA 世界的新手。另一个线程有助于创建 InputBox 并设置特定范围,但不是我需要的。
我让用户将行号输入到 InputBox 中,他们想在其中添加一行,但我想将他们输入的值从第 12 行(我的数据开始的地方)限制到总数上方的行排。我如何引用总行,因为它会随着行的添加而改变?以及如何使默认行高于总行? (目前我的总行是第 22 行)
Dim varUserInput As Variant
varUserInput = InputBox("Please enter the row number where you'd like to add a row:", _
"What Row?")
If varUserInput = "" Then Exit Sub
If Not IsNumeric(varUserInput) Or varUserInput < 12 Or 22 < varUserInput
Then 'If value out of specified range
varUserInput = 22 'Default value
MsgBox "You Entered a wrong value, using default", vbOKOnly
End If
【问题讨论】:
-
您的总行是工作表中的最后一行吗?
-
如果下面没有数据可以使用Worksheet.UsedRange.Rows
-
为什么要让用户选择添加行的位置?您应该找到最后使用的行并加 1,然后将数据放在该行上。也许您应该扩展您的问题以更多地解释您实际想要做什么。通常,当您刚接触 VBA 时(就像我曾经一样!),您会发现自己正在尝试让某些东西发挥作用 - 但如果您以不同的方式解决问题,实际上会有更好的解决方案。首先是什么触发了子?