2014-12-05 2 views
1

VBA를 실행하는 일부 단추가있는 Excel 시트를 작성하고 있습니다. 각 버튼은 본질적으로 사용할 범위의 시작, 길이 (사용할 셀 수) 및 사용자가 입력 한 몇 가지 다른 매개 변수에서 셀을 선택하고 그 정보를 하위 셀로 보냅니다 나는Excel 2013 VBA 크기 조정이 작동하지 않습니다.

Sub GetFromCTLGX(RangeToFill As Range, Name, TagName, TagLength) 
RangeToFill = RangeToFill.Resize(1, TagLength) 

내 범위를 사용하는 경우 현재 길이

에 입력 된 세포의 수에 하나 개의 셀을 포함하는 범위의 크기를 조정하는 "RangeToFill는"전혀 변경되지 않습니다.

내가

Sub GetFromCTLGX(RangeToFill As Range, Name, TagName, TagLength) 
RangeToFill.Resize(1, TagLength) 

코드 오류를 사용하여 컴파일하지 않습니다.

다른 사람이이 문제를 겪고 있습니까? 내가 누락 된 항목이 있습니까?

+0

어떤 오류가 발생하고 있습니까? 어떤 문제가 발생하고 있습니까? – guitarthrower

+0

@guitarthrower, 나는 그것을하는 첫 번째 방법에서 전혀 오류를 얻지 못했습니다. 그것은 아무 의미가 없었습니다. 범위의 크기를 조정하지 않고 그냥 선을 넘어서서 실행 중이 었습니다. 크기를 조정하기 전에 Set이 필요하다는 것이 밝혀졌습니다. 두 번째 방법은 RangeToFill.Resize 명령 전에 '='가 필요하다고 말하는데, 대부분의 예제에서 일반적인 방법 인 것처럼 보이기 때문에 이상합니다. – Danielh88

답변

0

코드에 쉽게 적응,

이 있었어야

Set RangeToFill= RangeToFill.Resize(1, TagLength)  

그것은 이상한하지만 .... 그것을 아직도있어 설명이 안된다 왜 그냥

RangeToFill.Resize(1, TagLength)  

이 작동하지 않습니다. 이는 제가 본 대부분의 예제에서 사용 된 것입니다. 거기에 Set 키워드가 없다는 오류가 없다는 것에 놀랐습니다.

0

이 예에서는 RangeToFill의 크기를 조정하여 한 행과 한 열씩 확장합니다. http://msdn.microsoft.com/en-us/library/office/ff193274%28v=office.15%29.aspx

numRows = RangeToFill.Rows.Count 
numColumns = RangeToFill.Columns.Count 
Set RangeToFill = RangeToFill.Resize(numRows + 1, numColumns + 1) 

내 코드에서 실수를 발견

+0

이것이 내 시도는 원래의 코드에서, 행의 수에 리터럴을 사용한다는 것을 제외하고는. 왜 작동하지 않는지 나는 이해하지 못한다. 그러나 예제의 세 번째 줄 앞에 "Set"을 넣자 마자 작동했다. – Danielh88

관련 문제