Excel VBA - 基于活动单元格运行宏
Posted
技术标签:
【中文标题】Excel VBA - 基于活动单元格运行宏【英文标题】:Excel VBA - Run macro based upon Active Cell 【发布时间】:2015-06-24 17:24:26 【问题描述】:我正在创建一个 Excel 宏,它将根据几个条件过滤源工作表。基本上,宏说如果您在福特表中,请转到源表并过滤福特。那部分很容易。我正在努力的是告诉它根据活动单元格过滤源表。所以...
如果 ActiveCell 是 A1,则转到源并执行 X 个条件的过滤器,否则如果 ActiveCell 是 B1,则转到源并执行另一个过滤器,依此类推。
这是我目前所拥有的:
If ActiveCell = Range("C36") Then
Sheets("Source-Cars").Select
'Unfilter data
Application.Goto (Sheets("Source-Cars").Range("A1"))
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
end if
end if
这里的问题是 ActiveCell = Range("C36") 正在查看该单元格的值,而不是我是否选择了该单元格。因此,如果我选择另一个与 C36 具有相同值的单元格,它会执行过滤器,而不是返回我内置的错误消息框。
关于如何根据哪个单元格处于活动状态(相对于所述单元格的值)运行逻辑的想法?谢谢!
G
【问题讨论】:
【参考方案1】:你想使用 ActiveCell.Address 它会告诉你一个像 $A$1 这样的值,然后你可以在比较中使用它。
试试这个示例代码看看返回值是如何格式化的:
Sub selectRange()
MsgBox ActiveCell.Address
End Sub
对于您的情况,您需要类似
If ActiveCell.Address = "$C$36" Then
【讨论】:
就是这样!我知道这一定很容易,但找不到答案。非常感谢!以上是关于Excel VBA - 基于活动单元格运行宏的主要内容,如果未能解决你的问题,请参考以下文章