Excel VBA – 基于Active Cell运行macros

我正在创build一个Excelmacros,它将根据多个条件过滤源工作表。 macros基本上说,如果你在福特工作表,去源表和筛选福特。 这部分很容易。 我正在努力的是告诉它过滤基于活动单元格的源表单。 所以…

如果ActiveCell为A1,则转到源代码并执行X个条件的filter,否则,如果ActiveCell是B1,则转到源代码并执行其他filter,依此类推。

以下是我到目前为止:

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”)正在查看该单元格的值,而不是我是否select了该单元格。 因此,如果我select另一个与C36具有相同值的单元格,它将执行filter,而不是返回内置的错误消息框。

关于如何根据什么是活动单元(与所述单元格的值)来运行逻辑的想法? 谢谢!

G

你想使用ActiveCell.Address它会告诉你一个像$ A $ 1的值,然后你可以在你的比较中使用。

试试这个示例代码,看看返回的值是如何格式化的:

Sub selectRange() MsgBox ActiveCell.Address End Sub

对于你的情况,你会想要的东西

If ActiveCell.Address = "$C$36" Then