, 당신은이 문제를 얻는 방법?
글쎄, 당신은 이 워크 시트를 선언에 이미 존재하기 때문에, 필요로하지 않으며, 이름, 인덱스, 또는 코드 명에 액세스 할 수 있습니다.
Worksheets("Sheet1") 'Name
Worksheets(1) 'Index
Sheet1 'CodeName
당신은 Worksheet
클래스 객체 변수에 다음 중 하나를 지정할 수 있으며, 결과는 동일합니다 :
Dim ws as Worksheet
Set ws = Worksheets(1)
MsgBox ws.Name
Set ws = Sheet1
MsgBox ws.Name
Set ws = Worksheets("Sheet1")
MsgBox ws.Name
그리고 당신은 단지 재 할당하여 다른 개체에 대한 포인터를 변경할 수 있습니다
Set ws = Worksheets("Sheet2") 'Now ws represents Sheet2 instead of Sheet1
등등.내가 뭘처럼 정의
Dim ws as Worksheet
Set ws = ActiveWorkbook.Sheets.Add(After:=Sheets(Sheets.Count))
ws.Name = "All Stocks"
:
또한, (일반) 변수 컨테이너가 객체의 문자열 리터럴 이름과 정확하게 일치해야하는 이유는 없다, 당신은 유형
Worksheet
의 변수를 선언 할 수 있습니다 너는 그랬다. 그러나 좀 더 나아가도록하겠습니다.'Set AllStocks = Worksheets ("all stocks")'. VBA에서 이름에 공백이있는 변수를 정의하려면이 작업을 수행 할 수 없다고 말해야합니다. – Masoud귀하의 질문은 완전히 명확하지 않습니다. * 무언가를 정의한다는 것은 무엇을 의미합니까? 무엇인가 * 무엇입니까? 그리고 그것을 어떻게 * 워크 시트로 정의하려고합니까? 질문에 답하는 것이 더 명확하도록 질문을 편집하고, 게시물에 넣은 단어가 설명하는 것 이외에 무엇을 하려는지 전혀 알지 못하게하십시오. 당신이 묻고있는 것을 이해하기 위해 당신의 스크린을 보거나 당신의 마음을 읽을 수 없습니다. –
그래, 나는 그렇게 명확하지 않았다. 내가 쓰려 던 의미는 정의가 아니라 선언이었다. 이 문제가 두 번 이상 있었으므로 VBA에 대한 일반적인 질문이었습니다. 나는 그 뜻을 예증과 함께 편집했다. –