2017-10-20 10 views
1

정확하게 비슷한 점이 있지만 내 문제는 아닙니다. 탭 이름의 세부 사항에 따라 각 탭의 범위를 지정하려고합니다. 한 시트에 탭 이름을 넣었으므로이 셀을 기반으로 명명 된 범위를 정의하려고합니다. 변수를 사용하여 범위 이름을 좋아할 수는 없습니다.모든 시트에 대해 명명 된 범위 목록 만들기

Sub Test() 

    Dim x As Integer 
    Dim y As String 
    Dim YY As String 
    Dim z As String 
    Dim ZZ As String 

    For x = 1 To Worksheets.Count 

    Sheets("List of Tab Names").Activate 

    y = Cells(x, 1).Value 
    z = Cells(x, 2).Value 
    YY = y & "Data2" 
    ZZ = z & "YoA2" 


    Sheets(y).Activate 

    Range("C9:BG233").Name = " ' " & YY & " ' " 
    Range("C7:BG7").Name = " ' " & ZZ & " ' " 

    Next x 

End Sub 

답변

0

범위 이름을 작은 따옴표로 묶지 않아도됩니다. 그냥 시도 :

Range("C9:BG233").Name = YY 
Range("C7:BG7").Name = ZZ 
+0

내가 실행을 얻을 - 시간 오류 '1004': 메시지. 그것은 내가 비 문자 또는 밑줄로 무언가를 지명하려고 노력하고있다라고 말한다. 따라서 열의 이름을 변경하여 도움이되는지 확인하고 있습니다. – user8806917

+0

y 및 z에 대한 어떤 값이 있습니까? 나는 y가 시트 이름에 정확히 무엇을 가정하지만, 공백이나 하이픈이 있으면 문제가 발생할 것입니다. – Michael

+0

아! 탭 이름에는 공백이 있습니다. 고맙습니다! – user8806917

0

을 나는 아이디어를 가지고 있다면 바로 내가 여기에 코드에서 볼 수 있듯이 당신이없는 모든 기능 Worksheets(sheetname)

생각 :

Range("A1:A5").Name = Worksheets("Sheet2").Range("A1") 
+0

내 문제는 모든 시트를 반복하여 이름을 지정하고 싶습니다. Sheet2를 루프로 변환해야합니다. – user8806917

+0

함수'Worksheets()'는 정수로 사용할 수 있습니다 (예 :'Worksheets (1)'). for 루프를 사용하여 모든 시트를 처리 할 수 ​​있습니다. 아니면 시트의 이름을 지정하고 싶습니까? – amitklein