2013-03-08 87 views
0

我試圖創建一個宏的Excel從不同的工作表中抓取數據並將其放到摘要頁面上。因爲我是VBA的新手,我目前的方法是搜索「TOI Score」(總是在第45行找到),將該單元向右偏移一列,從該單元複製到.End(xlDown).PasteSpecial,底部的transpose = true的工作表中,然後搜索TOI Score的下一個實例並重復。最終它會將複製的數據複製到摘要頁面。運行時錯誤91,但我有一切設置

由於某些原因,我無法讓Excel在此特定腳本中找到TOI Score。我知道它可以使用一個簡單的宏來找到它,它的唯一目的就是找到它,但是我無法弄清楚這個東西在搞什麼。起初它根本找不到字符串,但我做了一些事情,現在我得到了運行時錯誤91(它說我引用了一個非對象或空對象)。感謝您的幫助,您可以給...

這裏的腳本最多的地方,我得到的錯誤:

Sub GrabMyData() 
Dim sh As Worksheet 
Dim DestSh As Worksheet 
Dim CopyRng As Range, CopyHere As Range, CopyHereLastCol As Long, CopyHereLastRow As Long 
Dim aCell As Range, bCell As Range, oRange As Range, fullRange As Range 
Dim myLastRow As Long, myLastCol As Long 
Dim Last As Long 
Dim strSearch As String 
Dim t As Long 



On Error GoTo Err 

With Application 
    .ScreenUpdating = False 
    .EnableEvents = False 
End With 

Application.DisplayAlerts = False 
On Error Resume Next 
ActiveWorkbook.Worksheets("Summary Sheet").Delete 
On Error GoTo 0 
Application.DisplayAlerts = True 


Set DestSh = ActiveWorkbook.Worksheets.Add 
DestSh.Name = "Summary Sheet" 


For Each sh In ActiveWorkbook.Worksheets 
    If sh.Name <> DestSh.Name Then 

     strSearch = "TOI Score" 

     Set oRange = ActiveSheet.Rows(45)  

     Set aCell = oRange.Find(What:=strSearch, LookIn:=xlValues, _ 
     Lookat:=xlPart, SearchDirection:=xlNext, _ 
     MatchCase:=False, SearchFormat:=False) 
+1

刪除strSearch附近的引號。現在這就是你要搜索的內容,而不是「TOI Score」。 – 2013-03-08 06:50:50

+0

@DougGlancy好的,我之前得到錯誤,因爲strSearch沒有被定義,但現在我無法得到它找到我的字符串,所以aCell總是報告爲undefined。這是讓我瘋狂的,因爲如果我只是拿出搜索所需的代碼,搜索工作,但在這一個上下文中,我無法讓它找到我的strSearch – theadamattack 2013-03-08 16:49:12

回答

0

您將在工作表迭代和使用變量sh保存當前工作表。當您設定的範圍內使用可變oRange進行搜索,你總是看的工作表上,而不是由sh

指定的片上嘗試改變:

Set oRange = ActiveSheet.Rows(45)

到:

Set oRange = sh.Rows(45)

+0

我剛要回答我自己的問題,但你擊敗了我。你的方式比我的更優雅 - 我只是加了'sh.Activate' – theadamattack 2013-03-09 06:23:17

2

什麼你在你的例子是搜索字符串strSearch但不TOI Score。更改相應的線路爲:

Set aCell = oRange.Find(What:=strSearch,... 

等等...

+0

我試過這個,它修復了strSearch從不存在定義,但搜索現在不工作,即使它在我自己運行時也能正常工作。所以現在錯誤是aCell沒有被定義 – theadamattack 2013-03-08 17:01:35