用于选择包含特定文本的行的宏

时间:2014-09-25 00:49:09

标签: excel vba

我有一个从数据库导出的大型电子表格,调查回复包含我感兴趣的单词和短语,我想对其进行排序和报告。我想要做的是使用宏来扫描整个工作表中的句子,然后只选择包含关键字的行。

一些搜索(http://www.techpository.com/?page_id=1674)让我看到了这个示例代码,但它在Excel 2007中给了我错误:

Sub SelectManyRows()
Dim CatchPhrase As String
Dim WholeRange As String
Dim AnyCell As Object
Dim RowsToSelect As String

CatchPhrase = “future”
'first undo any current highlighting
Selection.SpecialCells(xlCellTypeLastCell).Select
WholeRange = "A1:" & ActiveCell.Address
Range(WholeRange).Select
On Error Resume Next 'ignore errors
For Each AnyCell In Selection
If InStr(UCase$(AnyCell.Text), UCase$(CatchPhrase)) Then
If RowsToSelect <> “” Then
RowsToSelect = RowsToSelect & "," 'add group separator
End If
RowsToSelect = RowsToSelect & Trim$(Str$(AnyCell.Row)) & ":" & Trim$(Str$(AnyCell.Row))
End If
Next
On Error GoTo 0 'clear error ‘trap’
Range(RowsToSelect).Select
End Sub

我得到的错误是运行时间&#39; 1004&#39;方法&#39;范围&#39;对象&#39; _Global&#39;失败了......有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

该错误可能是由以下行产生的:

Range(WholeRange).Select

Range(RowsToSelect).Select

因为&#34;范围&#34;对象不是一个只存在于它自己的......它属于一个&#34;工作表&#34;对象,所以假设所有这些都发生在活动工作表上(而不是后台中的不同),那么尝试将这些行修改为:

ActiveSheet.Range(WholeRange).Select

ActiveSheet.Range(RowsToSelect).Select

这应该清除您所看到的错误,只要没有其他任何我错过了该代码的实例。它值得点击&#39;调试&#39;当它抛出错误,以便你可以看到哪一行导致它...尝试在进行这些更改之前和之后检查错误至少移动!

使用范围的完整文档是here

HTH

相关问题