2013-03-08 1 views
0

Excel 용 매크로를 만들어 다른 워크 시트의 데이터를 가져 와서 요약 페이지에 넣으려고합니다. VBA에 익숙하기 때문에 현재의 방법은 "TOI 점수"(항상 45 행에 있음)를 검색하고 해당 셀을 오른쪽으로 한 열씩 오프셋하고 해당 셀에서 .End(xlDown).PasteSpecial의 아래쪽에 transpose = true으로 복사하는 것입니다. 그 다음에 TOI Score의 인스턴스를 검색하고 반복하십시오. 결국 복사 된 데이터가 요약 페이지로 복사됩니다.런타임 오류 91,하지만 다 알아 냈어.

그러나 Excel에서이 특정 스크립트 내에서 TOI Score을 찾을 수 없습니다. 나는 그것을 발견 할 수있는 유일한 목적 인 베어 메네 (bare-bones) 매크로를 사용하여 그것을 발견 할 수 있다는 것을 알고 있지만,이 매크로에서 무엇이 엉망이되는지 알아낼 수는 없습니다. 처음에는 단순히 문자열을 찾지 못했지만 무언가를했는데 이제는 런타임 오류 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 점수"가 아닙니다. –

+0

@DougGlancy OK strSearch가 정의되지 않아 이전에 오류가 발생했지만 이제는 문자열을 찾기 위해 가져올 수 없으므로 aCell은 항상 정의되지 않은 것으로보고됩니다. 그것은 내가 검색에 필요한 코드를 뽑아 내면 검색이 작동하기 때문에 미칠 수 있습니다.하지만이 문자열의 컨텍스트에서는 strSearch를 찾을 수 없습니다. – theadamattack

답변

0

을 :로 해당 라인을 변경합니다. 당신이 변수 oRange를 사용하여 검색 할 범위를 설정하면, 당신은 항상 sh

에 의해 지정된 시트에 활성 시트에보고되지는 변경보십시오 :

Set oRange = ActiveSheet.Rows(45)

에 :

Set oRange = sh.Rows(45)

+0

나는 내 자신의 질문에 대한 답을 얻으 려하고 있었지만, 당신은 저를 때렸습니다. 당신의 방법은 제 것보다 조금 우아합니다 --- 나는'sh.Activate'를 추가했습니다. – theadamattack

2

당신이 당신의 예에서 검색하는 문자열 strSearch하지만 TOI Score입니다 : 당신이 줄 수있는 도움 ...

주셔서 감사합니다 여기에 내가 오류를 얻을 곳으로 스크립트이야. 당신은 워크 시트를 통해 반복과 현재 시트를 저장하는 변수 sh를 사용하고 ... 등등

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

+0

나는 이것을 시도하고 strSearch를 수정하지 않았습니다. 정의되었지만 검색 자체가 작동 할 때에도 검색이 작동하지 않습니다. 이제 오류는 aCell이 정의되어 있지 않다는 것입니다. – theadamattack

관련 문제