【发布时间】:2020-04-14 14:35:28
【问题描述】:
我想将一列单元格视为按钮,您单击一个单元格并更改其字体/填充以显示它已被选中,并且格式会从其他“按钮”中清除。似乎在每个单元格上放置矩形并将它们分配给一些 cell_on 宏就可以了,但我不知道如何使宏动态引用底层单元格。使用ActiveCell 不起作用,因为单击覆盖的形状时,实际上并没有选中下面的单元格。
【问题讨论】:
-
你可以使用
Shape.TopLeftCell。
我想将一列单元格视为按钮,您单击一个单元格并更改其字体/填充以显示它已被选中,并且格式会从其他“按钮”中清除。似乎在每个单元格上放置矩形并将它们分配给一些 cell_on 宏就可以了,但我不知道如何使宏动态引用底层单元格。使用ActiveCell 不起作用,因为单击覆盖的形状时,实际上并没有选中下面的单元格。
【问题讨论】:
Shape.TopLeftCell。
你可以像这样使用超链接:
=HYPERLINK("#tester()"," ")
只有空的显示文本,你可以去掉下划线格式。
链接调用这个函数
'in a regular module
Function tester()
ActiveSheet.Range("A3:A17").Interior.Color = vbYellow '<< clear rest of range
Selection.Interior.Color = vbRed '<< set the clicked cell
Set tester = Selection '<< must return a range
End Function
【讨论】:
tester 现在是我可以从宏调用的全局变量了吗?
=HYPERLINK("#tester()",D2 & " " & E2) (例如)对我来说很好用。你想用什么类型的公式? tester 是一个函数 - 您可以从宏中调用它,但不确定为什么要这样做,因为它非常特定于这个用例。
=