gpt4 book ai didi

excel - 确定单元格上方/内部是否有按钮

转载 作者:行者123 更新时间:2023-12-04 22:15:12 25 4
gpt4 key购买 nike

如何在 Excel 中使用 VBA 来确定特定单元格中是否有一个或多个按钮?
我有一个 50 行的电子表格。每行都有一系列数据输入字段,然后在 S 列中,有两个按钮可以根据该数据进行一些计算。这些按钮都运行相同的宏,并检查它们所在的行以确定要操作的行。
一旦数据不再相关,用户将定期删除一行或多行。发生这种情况时,我想在底部插入相同数量的新行,以确保我始终有 50 个数据行。我可以复制和粘贴例如S49到S50,按钮会出现在S50中,按预期工作,但是我不知道是删除了一行还是n行,所以不知道是从S49、S48还是Sn开始复制.
如果我写一个 for n = 1 to 50循环遍历列 S 的每一行,如何检查单元格 Sn 中是否存在按钮?
编辑:在下面@Michael 的回答中,我意识到我需要遍历按钮,而不是单元格。虽然迈克尔的解决方案正确回答了我的问题,但在我的特定应用程序中它更简单一些:

Dim lastBtnRow as Integer
Dim b As Button
lastBtnRow = 0

For Each b In ActiveSheet.Buttons
If b.TopLeftCell.Row > lastBtnRow Then lastBtnRow = b.TopLeftCell.Row
Next
然后只需将 S:lastBtnRow 复制并粘贴到 S:lastBtnRow+1 到 S:50

最佳答案

单元格没有标识位于其中的对象的属性,但对象具有关于它们所在位置的属性。
您需要通过工作表上的所有按钮构建一个循环并测试它们的位置。如果您正在处理表单按钮(而不是 ActiveX 按钮),那么这是一个简单的循环,它将计算您当前选择的单元格中的按钮数量:

Sub ButtonLoop()

Dim b As Button, i As Long

For Each b In ActiveSheet.Buttons
If b.TopLeftCell.Address = Selection.Address Then i = i + 1
Next

MsgBox i

End Sub
如果要检查每个单元格中的按钮数量,可以编写一个循环遍历每个单元格的外循环,然后使用上面的循环作为内循环,在外循环中检查当前单元格中的按钮;或者更有效地使用诸如字典之类的数据结构来为遇到的每个单元格地址增加一个计数器。

关于excel - 确定单元格上方/内部是否有按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70328436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com