Vinod经常使用Excel的高级筛选工具将已筛选的数据从一个位置复制到另一个位置。在某些情况下,他不仅要复制单元格内容,还要复制满足过滤条件的单元格的单元格注释。他不是在寻找一种基于注释进行过滤的方法,而只是在使用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培训的来源。

本技巧(3169)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: