열 참조를 사용하여 VBA에서 셀 내용 지우기
열 참조를 사용하여 일부 셀의 데이터를 지우는 코드를 얻으려고 합니다. 다음 코드를 사용하고 있습니다:
Worksheets(sheetname).Range(.Cells(2, LastColData), .Cells(LastRowData, LastColData)).ClearContents
하지만 첫 번째 .Cells 섹션에서 오류가 발생하는데 그 이유는 무엇인가요?
12
3
워크시트.열 개체를 사용하여 전체 열을 범위로 액세스할 수 있습니다.
와 같은 식으로요:
는 A 열의 내용을 지워야 합니다.
행에 대해 비슷한 작업을 수행해야 하는 경우
Gary의 학생이 언급했듯이 코드가 원래 작성된대로 작동하려면
Cells
앞의 점을 제거해야 합니다. 한 줄의 코드만 포함했기 때문에 확실하지는 않지만 점을 삭제했을 때 발생한 오류는 변수를 정의한 방법과 관련이 있을 수 있습니다.변수를 정수로 정의한 상태에서 코드 줄을 실행해 보았는데 작동했습니다:
공유하신 코드 줄에
With
문이 적절하지 않다고 생각하지만, 만약With
를 사용해야 한다면 조작 중인 객체를 정의하는 줄의 시작 부분에With
를 넣어야 할 것입니다. 다음은 불필요한With
문을 사용하여 재작성된 코드입니다:With
문은 코드를 다시 입력하는 수고를 덜고 코딩을 더 읽기 쉽게 만들기 위해 고안되었습니다. 객체로 두 가지 이상의 작업을 수행할 때 유용하고 적절해집니다. 예를 들어 열을 빨간색으로 바꾸고 굵은 검은색 테두리를 추가하려는 경우 다음과 같이
With` 문을 사용할 수 있습니다:그렇지 않으면 다음과 같이 각 작업 또는 속성에 대한 범위를 선언해야 합니다:
이 글을 통해 컴파일러가 왜 (부적절함에도 불구하고)
With
를 기대할 수 있다고 생각했는지, 그리고 코드에서With
가 언제 어떻게 유용할 수 있는지에 대해 이해하셨기를 바랍니다.그 전에 With 문이 필요합니다. 또는 .Cells를 Cells로 만듭니다.