Vinod经常使用Excel的高级筛选工具将已筛选的数据从一个位置复制到另一个位置。在某些情况下,他不仅要复制单元格内容,还要复制满足过滤条件的单元格的单元格注释。他不是在寻找一种基于注释进行过滤的方法,而只是在使用Excel的高级过滤功能时仅将注释与单元格内容一起复制。

(应该注意,Microsoft更改了Excel Office 365中注释的工作方式。注释现在加入了线程,允许用户彼此讨论数据。注释的工作方式类似于早期版本的Excel中的注释。)

据我们所知,无法使用高级过滤来复制评论或注释。仅复制单元格内容。但是,可以通过两步过程轻松复制评论或注释。

首先,过滤数据,但请确保就地进行过滤;不要指定您要将信息复制到其他位置。您最终得到一个过滤列表,仅显示符合条件的单元格。接下来,选择过滤返回的单元格。

然后,应确保Excel知道您只希望选择可见的单元格:

。按F5以显示“转到”对话框。

。单击“特殊”以显示“转到特殊”对话框。 (请参见图1。)

。确保选中“仅可见单元”选项。

。单击确定。

选中可见的单元格(未选中那些被筛选隐藏的单元格),您就可以准备第二步:使用常规编辑技术将单元格复制到另一个位置。结果是注释或注释与单元格内容一起被复制。

如果您执行此任务相当多,甚至使您无法完成这两个步骤,则可以自动化该任务。以下宏将在适当位置应用过滤器,将可见的单元格复制到剪贴板,然后将它们(及其注释或注释)粘贴到新的工作簿中:

Sub AdvancedFilter_AndCopyComments()

With Range("Database")

' filter the data range         .AdvancedFilter Action:=xlFilterInPlace, _           CriteriaRange:=Range("Criteria"), Unique:=False         ' copy visible cells only         .SpecialCells(xlCellTypeVisible).Copy     End With

' goto to another worksheet     Sheets("Sheet1").Select     ' and paste the copied data     With Range("A1")

.PasteSpecial xlPasteColumnWidths         .PasteSpecial xlPasteAll     End With

Application.CutCopyMode = False End Sub

该宏假定您设置了两个命名范围:一个用于要过滤的数据(数据库),另一个用于过滤条件(标准)。运行宏,过滤后的,已注释或已注释的信息最终出现在Sheet1上。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(10284)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: