2014-09-25 92 views
-2

我從包含調查反饋的數據庫中導出大型電子表格,其中包含感興趣的單詞和短語,我希望對其進行排序和報告。我想要做的是使用宏來掃描整個工作表中的句子,然後只選擇包含關鍵字的行。用於選擇包含特定文本的行的宏

一些摸索(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'失敗...有人可以幫我解決這個問題嗎?

+0

vb.net是*不* VBA – Plutonix 2014-09-25 00:54:07

+0

THX @Plutonix(新手) – 2014-09-25 01:08:40

回答

0

可能正在由線產生的錯誤:

Range(WholeRange).Select 

Range(RowsToSelect).Select 

因爲「範圍」的對象不是一個只存在於自己的...它屬於到「工作表」對象,因此假設所有這些都發生在活動工作表上(而不是背景中的另一個),請嘗試將這些行修改爲:

ActiveSheet.Range(WholeRange).Select 

ActiveSheet.Range(RowsToSelect).Select 

這應該清除您看到的錯誤,只要不是我已經錯過了目測該代碼的任何其他實例。當它拋出錯誤時,值得點擊「調試」,以便您可以看到哪一行導致了它......嘗試在進行這些更改之前和之後檢查錯誤是否至少在移動!

使用範圍的完整文檔,here

HTH

相關問題