【问题标题】:Can an Excel macro assigned to a shape format the cell the shape is sitting on?分配给形状的 Excel 宏可以格式化形状所在的单元格吗?
【发布时间】:2020-04-14 14:35:28
【问题描述】:

我想将一列单元格视为按钮,您单击一个单元格并更改其字体/填充以显示它已被选中,并且格式会从其他“按钮”中清除。似乎在每个单元格上放置矩形并将它们分配给一些 cell_on 宏就可以了,但我不知道如何使宏动态引用底层单元格。使用ActiveCell 不起作用,因为单击覆盖的形状时,实际上并没有选中下面的单元格。

【问题讨论】:

标签: excel vba


【解决方案1】:

你可以像这样使用超链接:

=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

【讨论】:

  • 好吧,用这种方法我不用担心形状,对吗?
  • 是的,因此您不必担心形状移动、排序等问题
  • 效果很好,尽管 HYPERLINK 不接受任何跳转文本的公式,只接受字符串或单元格引用。除此之外,tester 现在是我可以从宏调用的全局变量了吗?
  • =HYPERLINK("#tester()",D2 &amp; " " &amp; E2) (例如)对我来说很好用。你想用什么类型的公式? tester 是一个函数 - 您可以从宏中调用它,但不确定为什么要这样做,因为它非常特定于这个用例。
  • 解决公式问题:必须从前面删除=
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
相关资源
最近更新 更多