我有一个从数据库导出的大型电子表格,调查回复包含我感兴趣的单词和短语,我想对其进行排序和报告。我想要做的是使用宏来扫描整个工作表中的句子,然后只选择包含关键字的行。
一些搜索(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;失败了......有人可以帮帮我吗?
答案 0 :(得分:0)
该错误可能是由以下行产生的:
Range(WholeRange).Select
和
Range(RowsToSelect).Select
因为&#34;范围&#34;对象不是一个只存在于它自己的......它属于一个&#34;工作表&#34;对象,所以假设所有这些都发生在活动工作表上(而不是后台中的不同),那么尝试将这些行修改为:
ActiveSheet.Range(WholeRange).Select
和
ActiveSheet.Range(RowsToSelect).Select
这应该清除您所看到的错误,只要没有其他任何我错过了该代码的实例。它值得点击&#39;调试&#39;当它抛出错误,以便你可以看到哪一行导致它...尝试在进行这些更改之前和之后检查错误至少移动!
使用范围的完整文档是here
HTH