2016-06-09 1 views
1

다음 변수를 사용하여 다음과 같은 인접하지 않은 이름이 지정된 범위를 만들 수 있습니까? 나는 그것이 작동 한 변수를 사용하지만 비 연속적인 범위를 만들기 위해 두 개 이상의 변수를 사용할 수 없습니다 나는 경우Names.VBA에서 변수를 사용하여 추가

Dim PM As Range 
Dim statement_date As Range 

Set PM = ws.Range("A3") 
Set statement_date = ws.Range("B4") 

:

ActiveWorkbook.Names.Add Name:="Validation_Range", RefersToR1C1:= _ 
    "='Holding Template'!R3C1,'Holding Template'!R4C2" 

다음은 변수입니다.

답변

0

당신이 두 개의 범위가 변수를 설정하지만, 여기에 Union method를 사용하여 일부 속기 옵션입니다 점점 ​​방법을 명확하지 않다.

Dim pm As Range, statement_date As Range 
With Worksheets("Holding Template") 
    Union(.Cells(3, 1), .Cells(4, 2)).Name = "Validation_Range" 
    'alternate 
    'Union(.Range("A3"), .Range("B4")).Name = "Validation_Range" 
    'alternate 
    'Set pm = .Range("A3") 
    'Set statement_date = .Range("B4") 
    'Union(pm, statement_date).Name = "Validation_Range" 
End With 

이러한 방법 중 하나는 통합

범위의 명명 된 범위를 생성하거나 RefersTo을 덮어 : 통합 범위와 기존 Validation_Range라는 범위를.

+0

이것이 정확하게 내가 생각하는 것 같습니다. Union 함수는 한 곳에서 변수를 결합하는 것을 쉽게하는 것처럼 보입니다. 감사! –

+0

코드의이 부분은 내가 필요한 것입니다. 다시 한 번 감사드립니다! 'Union (pm, statement_date) .Name = "유효 범위 _ 범위" –

0

수동으로 원하는 이름을 만든 다음 어떻게 조합하는지 확인하십시오. 그런 다음 문자열을 조합하는 코드를 작성하십시오. 이 같은

뭔가 작동하는 것 같다 :

Sub test() 
    Dim PM As Range, ws As Worksheet 
    Dim statement_date As Range 

    Set ws = Sheets("Holding Template") 
    Set PM = ws.Range("A3") 
    Set statement_date = ws.Range("B4") 

    ActiveWorkbook.Names.Add Name:="Validation_Range", RefersTo:= _ 
     "='" & ws.Name & "'!" & PM.Address & ",'" & ws.Name & "'!" & statement_date.Address 
End Sub 
0

여기에 내 스프레드 시트에있는 모든 제목을 이름을 변경하는 방법은 다음과 같습니다

Sub renameheader() 
i = 5 
For x = 1 To 30 
Worksheets("CHECKALL_LIST").Cells(1, i).Name = "Checks_" & x 
i = i + 3 
Next 
End Sub 

제목은 매 3 개 세포를 합병 나는 "나"사용하는 데 필요한 이유입니다. 희망이 도움이됩니다.

관련 문제