【发布时间】:2019-01-10 15:51:25
【问题描述】:
我正在尝试在网上搜索可以帮助我的 VBA 代码,但我找不到任何东西。
我想做什么:
- 在同一个工作簿中,我有两张工作表。
- 在工作表 1 中,A 列包含批次值(仅限数字)。
- 在工作表 2 中,包含这些值(有时是相同值的 1 倍以上)的 A 列以及其他列中的更多信息。
到目前为止,还好。
我需要的是,当我在工作表 1 中双击其中一个值时,excel 仅在工作表 2 中显示相同的值(不仅是第一次出现),而隐藏其他值。
例子:
Sheet 1
Column A
123
124
125
126
Sheet 2
Column A
123
124
123
125
123
126
当单击表 1 中值为 123 的单元格时,Excel 仅在表 2 中显示具有相同值的行,隐藏其他值。
我不知道如何编码。但是,我认为可以使用此代码。唯一的问题。它在弹出框中返回第一次出现的行号。我需要的是,Excel 在工作表中显示建立的值。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'If you select more than one cell, ignore
If Target.CountLarge > 1 Then Exit Sub
'If you select a blank cell, ignore
If Target.Value = vbNullString Then Exit Sub
Dim Finder, ClickRange
'We want the event to fire if you click in column A anywhere
Set ClickRange = Sheets("Sheet1").Range("A:A")
'If you click somewhere else, ignore
If Intersect(Target, ClickRange) Is Nothing Then Exit Sub
'Look for the value in sheet 2 column A
Set Finder = Sheets("Sheet2").Range("A:A").Find(Target.Value, LookAt:=xlWhole)
'If we don't find it, Exit Sub
If Finder Is Nothing Then Exit Sub
'To display the row:
MsgBox (Finder.Row)
'To Select it:
'If we find it, select sheet 2 and select the cell
'Sheets("Sheet2").Activate
'Finder.Select
End Sub
【问题讨论】:
-
能否请edit your question 向我们提供样本数据、预期结果、您迄今为止尝试过的内容以及未能达到预期的原因?
-
欢迎来到 Stack Overflow!你会发现如果你花点时间去Stack Overflow tour,你会有更好的体验。您还可以阅读有关询问good question 的信息。如果您遵循 Stack Overflow 社区的规范并以帮助他人的态度来对待它,它将为您提供良好的服务。
-
首先,工作表没有双击事件。例如,您需要为此选择一个值并单击一个按钮。其次,您可以使用
Selection.Value读取该值,然后在您的sheet2 上使用该值执行AutoFiter。如果你在这里或谷歌搜索,你会发现很多教程如何在 VBA 中使用自动筛选。试一试,然后返回您的代码尝试告诉您卡在哪里或错误。 -
没有固定代码供您复制和粘贴并使其工作。您将不得不编写代码。如果您遇到特定问题,请随时返回并询问该特定问题。现在这个问题读起来像“为我写代码,这是我的规范”,这对于 Stackoverflow 问题来说太宽泛了。