我很难弄清楚这一点。
这是我的布局:
正如你所见,我有 2 个按钮。
我希望每个按钮的功能是:
- 每次我单击,它都会在特定范围内的单元格中
YES
插入。Y
- 如果我
YES
再次单击,它将自动Y
在同一列中前一个单元格下的下一个单元格中插入一个。 - 如果我单击
NO
,它还将继续沿着该列向下插入一个N
。
如何使按钮的输出始终使用下一个空闲单元格?
答案1
我假设您代码的其余部分已经完成,您需要的是某种方法来获取用于插入值的行。如果您的数据不是很大并且您恰好喜欢循环,那么以下代码片段效果最佳:
Dim rNext as Long
rNext = 2 'First used row in column F
Do Until LenB(Range("F" & rNext).Value) = 0
rNext = rNext + 1
If rNext = ActiveSheet.Rows.Count Then Exit Do
Loop
这里有一个更强大并且更快的解决方案:
Dim rNext As Long
rNext = Range("F2:F" & Cells.Rows.Count).Find(vbNullString).Row
从第二个示例中您可能已经看出,您可以直接使用以下命令执行此操作:
Range("F2:F" & Cells.Rows.Count).Find(vbNullString).Value = "Y"