用于选择包含特定文本的行的宏
问题描述:
我从包含调查反馈的数据库中导出大型电子表格,其中包含感兴趣的单词和短语,我希望对其进行排序和报告。我想要做的是使用宏来扫描整个工作表中的句子,然后只选择包含关键字的行。用于选择包含特定文本的行的宏
一些摸索(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
我得到的错误是运行时“1004”方法“范围”对象'_Global'失败...有人可以帮我解决这个问题吗?
答
可能正在由线产生的错误:
Range(WholeRange).Select
和
Range(RowsToSelect).Select
因为“范围”的对象不是一个只存在于自己的...它属于到“工作表”对象,因此假设所有这些都发生在活动工作表上(而不是背景中的另一个),请尝试将这些行修改为:
ActiveSheet.Range(WholeRange).Select
和
ActiveSheet.Range(RowsToSelect).Select
这应该清除您看到的错误,只要不是我已经错过了目测该代码的任何其他实例。当它抛出错误时,值得点击“调试”,以便您可以看到哪一行导致了它......尝试在进行这些更改之前和之后检查错误是否至少在移动!
使用范围的完整文档,here
HTH
vb.net是*不* VBA – Plutonix 2014-09-25 00:54:07
THX @Plutonix(新手) – 2014-09-25 01:08:40