2014-06-30 1 views
1

시트 목록을 순환하여 다른 워크 시트 목록의 시트 참조가있는 계산을 실행할 수 있습니까? 예를 들어, 계산의 대상이 될 워크 시트 목록 (목록 1)이 있고 계산의 기초가되는 두 번째 워크 시트 목록 (목록 2)이 있습니다. 그래서, 목록 1에 sheet1과 sheet2, 목록 2에 sheetA와 sheetB가 있다고 가정 해 봅시다. sheetA에 기반한 계산은 sheet1에 나타나고 sheetB에 기반한 계산은 sheet2에 나타납니다.시트를 반복하여 동적 시트 참조를 기반으로 계산 실행

Sub LoopthroughWorksheets() 
Dim sheet_name As Range 
Dim sheet_name2 As Range 
Set sheet_name2 = Sheets("WS").Range("F:F") 
For Each sheet_name In Sheets("WS").Range("C:C") 
    If sheet_name.Value = "" Then 
     Exit For 
    Else 
     With Sheets(sheet_name.Value) 
       .Range("K1") = .Range("sheet_name2.Value!A14").Value 
     End With 
    End If 
    Next sheet_name 
End Sub 

나는 "런타임 오류 '1004 : 응용 프로그램 정의 또는 개체 정의 오류"를 받고 있어요 : .Range("K1") = .Range("sheet_name2.Value!A14").Value

이 어떤 도움이이 줄에서 나는 코드는 다음과 같을 것이라고 생각 매우 감사.

감사합니다.

답변

1

예, 가능하지만 코드가 잘못되었습니다.

당신은 일치하는 시트 이름을 모두 열 C와 F를 통해 어떻게 든 반복 한 다음 검색해야합니다 : 회신 @의 MP24에 대한

Sub LoopthroughWorksheets() 
    Dim sheet_name As Range 
    Dim sheet_name2 As Range 
    Set sheet_name2 = Sheets("WS").Range("F:F") 
    ' NEW 
    Dim counter As Long 
    counter = 1 

    For Each sheet_name In Sheets("WS").Range("C:C") 
     If sheet_name.Value = "" Then 
      Exit For 
     Else 
      With Sheets(sheet_name.Value) 
       .Range("K1").Value = Sheets(sheet_name2(counter, 1).Value).Range("A14").Value 
       ' NEW      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^     
       counter = counter + 1 
      End With 
     End If 
    Next sheet_name 
End Sub 
+0

감사합니다. Range ("A14") .Value 런타임 오류가 발생합니다. 9 : subscript가 범위를 벗어났습니다. 이 코드는'.Range ("K1") = Sheets (sheet_name2) .Range ("A14") .Value 런타임 오류가 발생합니다. 13 : 형식이 일치하지 않습니다. 이 코드를 사용하면 :'.Range ("K1") = Sheets (sheet_name2.Value) .Range ("A14") .Value 런타임 오류가 발생합니다. 13 : 입력이 일치하지 않습니다. – user3242245

+0

아직도 잘못 될 수있는 것에 관한 의견이 있습니까? 목록의 워크 시트 목록은 A1 : A51이고 목록 2의 워크 시트 목록은 F1 : F51입니다. 셀 A14에는 텍스트가 아닌 숫자가 들어 있습니다. – user3242245

+0

그것은 일했다! 고맙습니다. 이렇게하면 코딩 시간을 절약 할 수 있습니다. 이 질문은 상당히 일반적인 질문이라고 생각했지만 답변을 찾을 수 없었습니다. 그냥 궁금해서 카운터는 어떻게 작동합니까? sheet_name2 (1,1)이 셀 A1에 나열된 워크 시트와 얼마나 유사한 지 잘 모르겠습니다. – user3242245

관련 문제