Excel VBA-문자열 변수를 Union Method의 입력으로 사용


1

: 어딘가에 시트라는 시트 2에서 나는 다음이 이미지를 보려면 클릭하세요

TEXTJOIN 함수를 사용하여 A 열의 값을 연결합니다. B100의 문자열은 변수 S입니다 (코드 참조).

내 매크로의 메소드에 대한 입력으로 이것을 사용하려고합니다. 다음은 모듈의 코드 스 니펫입니다.

Dim ListofSheets, WorkingSheet As Worksheet 
Dim C0, C1 As Range   
Dim S As String
Dim WholeRange As Range

Set ListofSheets = Sheets("Sheet2")
...

Set C0 = WorkingSheet.Range(PanelColumn & StartingRow & ":" & PanelColumn & lRow)
Set C1 = WorkingSheet.Range(LoadCaseColumn & StartingRow & ":" & LoadCaseColumn & lRow)

S = ListofSheets.Cells(100, 2).Value

Set WholeRange = Union(S)
    WholeRange.Copy

End Sub

C0 및 C1은 코드에서 계산되며 다음 범위입니다.

C0= C7:C310
C1= D7:D310

위 코드를 실행하면 Set WholeRange = Union(S)"컴파일 오류 : 형식 불일치"가 있는 줄에 오류가 발생합니다.

나는 Set WholeRange = Union(C0, C1)성공적으로 작동하는 것을 시도했지만 실제로 선택할 수있는 더 많은 변수가 있기 때문에 이것을 사용하고 싶지 않습니다.

내 질문은 문자열을 매개 변수로 전달할 수있는 이유는 무엇이며 어떻게 문제를 해결할 수 있습니까?

주의 : 여기에 표시되지 않은 코드에 범위가 두 개 이상 있습니다. 스크립트는 사용할 범위를 결정합니다. 이후 2 개 이상의 범위 내가 사용하고, 입력 할 필요가 Union의 대신 방법을 Range방법


유니온은 범위가 필요하지 않습니까? 가 S문자열? 사용하면 어떻게됩니까 Union(INDIRECT(S))?
Yorik

@Yorik INDIRECT은 워크 시트 함수입니다. 나는 당신이 사용하려고 생각합니다 RANGE(S).
레이 Juna

@ ReyJuna 질문에 이것을 추가하는 것을 잊었지만 여러 범위 (4+)가 계산되고 있습니다. 위의 두 개는 단지 예일 뿐이므로 입력 매개 변수가 두 개 이상이므로 Range를 사용할 수 없습니다. 내 원래 질문이 편집되었습니다.
Kavinda JD

S변수 이름을 나타 내기 위해 문자열 인을 사용 하고 있습니다. UNION적어도 두 개의 범위 인수가 필요합니다.
레이 Juna

위의 결과는 값 SC0,C1-두 개의 인수 임을 나타냅니다 . 문제는 그것이 단지 하나의 주장이라고 생각합니다.
Kavinda JD

답변:


0

따라서 S문자열 이므로 Range를 지정하는 것처럼 읽지 만 Union()Range 객체 가 필요하므로 유형 불일치 오류가 발생합니다. 잘못된 유형을 전달했습니다.

의 값이 S적절한 범위 를 지정하는 한 다음과 같이 시도하십시오.

Dim UnionRange as Range 'declare at top
...
Set UnionRange= WorkingSheet.Range(S) 'insert this after S is assigned
...
Set WholeRange = Union(UnionRange) 'change the range assignment to this
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.