Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 用于选择包含特定文本的行的宏_Excel_Vba - Fatal编程技术网

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

Excel 用于选择包含特定文本的行的宏,excel,vba,Excel,Vba,我有一个从数据库中导出的大型电子表格,其中包含了我想要排序和报告的感兴趣的单词和短语。我想做的是使用宏扫描整个工作表中的句子,然后只选择包含关键字的行 在()附近搜索,我找到了这个示例代码,但它在Excel 2007中给了我错误: Sub SelectManyRows() Dim CatchPhrase As String Dim WholeRange As String Dim AnyCell As Object Dim RowsToSelect As String CatchPhrase

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

在()附近搜索,我找到了这个示例代码,但它在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
子选择manyrows()
模糊的流行语如弦
像细绳一样的模糊的杂音
将任意单元格设置为对象
Dim Row可选择为字符串
流行语=“未来”
'首先撤消任何当前高亮显示
Selection.SpecialCells(xlCellTypeLastCell)。选择
WholeRange=“A1:”&ActiveCell.Address
范围(WholeRange)。选择
错误时继续下一步“忽略错误”
对于选择中的每个AnyCell
如果InStr(UCase$(AnyCell.Text)、UCase$(流行语))那么
如果选择“”则
RowsToSelect=RowsToSelect&“,”添加组分隔符
如果结束
RowsToSelect=RowsToSelect&Trim$(Str$(AnyCell.Row))&“&Trim$(Str$(AnyCell.Row))
如果结束
下一个
错误转到0“清除错误”陷阱
范围(行选择)。选择
端接头

我得到的错误是对象“\u Global”的运行时“1004”方法“Range”失败。。。有人能帮我一下吗?

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

Range(WholeRange).Select

因为“范围”对象并不是一个独立存在的对象。。。它属于“工作表”对象,因此假设所有这些都发生在活动工作表上(而不是背景中的其他工作表),然后尝试将这些行修改为:

ActiveSheet.Range(WholeRange).Select

这应该会清除您看到的错误,只要我没有错过任何其他实例查看该代码。在抛出错误时点击“debug”是值得的,这样您就可以看到是哪一行导致了错误。。。在进行这些更改之前和之后,请尝试这样做,以检查错误是否至少移动了

提供了有关使用范围的完整文档

HTH

Thx@PUROTIX(新手)
ActiveSheet.Range(WholeRange).Select
ActiveSheet.Range(RowsToSelect).Select