programing

워크북을 개체로 정의할 수 없는 이유는 무엇입니까?

megabox 2023. 6. 8. 19:33
반응형

워크북을 개체로 정의할 수 없는 이유는 무엇입니까?

다음 방법 중 하나로 워크북을 정의할 수 없는 이유는 무엇입니까?(간단한 테스트를 위해 범위 비트를 가지고 있습니다.)어떻게 고치죠?

이는 다음을 생성합니다."Compile Error: Type Mismatch"

Sub Setwbk()

    Dim wbk As Workbook

    Set wbk = "F:\Quarterly Reports\2012 Reports\New Reports\ _
           Master Benchmark Data Sheet.xlsx"

    Range("A2") = wbk.Name

End Sub

그리고 이것은 다음을 만듭니다."Runtime Error '91': Object variable or with block variable not set"

Sub Setwbk()

    Dim wbk As Workbook

    wbk = "F:\Quarterly Reports\2012 Reports\New Reports\ _
          Master Benchmark Data Sheet.xlsx"

    Range("A2") = wbk.Name

End Sub

내가 여기서 뭘 놓쳤지요?저는 한 달 동안 VBA를 열심히 공부했고, 꽤 정교해졌지만, 이것은 저를 당황하게 했습니다.뭔가 기본적인 것을 놓치고 있어요.
워크북을 정의하여 모든 것을 입력할 필요가 없습니다!

그것은 사실 합리적인 질문입니다.다음은 Excel 2010 도움말의 답변입니다.

"Workbook 개체는 Workbook 컬렉션의 구성원입니다.워크북 모음에는 현재 Microsoft Excel에서 열려 있는 모든 워크북 개체가 포함되어 있습니다."

따라서 워크북이 열려 있지 않기 때문에 워크북 개체로 설정할 수 없습니다.열려 있으면 다음과 같이 설정할 수 있습니다.

Set wbk = workbooks("Master Benchmark Data Sheet.xlsx")

이를 참조하려면 워크북을 열어야 합니다.

Sub Setwbk()

    Dim wbk As Workbook

    Set wbk = Workbooks.Open("F:\Quarterly Reports\2012 Reports\New Reports\ _
        Master Benchmark Data Sheet.xlsx")

End Sub

워크북이 이미 열려 있으면 Doug의 대답을 따릅니다.이 답변을 가능한 한 완벽하게 하기 위해, 저는 그의 답변에 제 의견을 포함합니다.

왜 "설정"해야 합니까?

SetVBA가 개체 변수를 할당하는 방법입니다.그 이후로Range그리고 aWorkbook/Worksheet객체입니다. 사용해야 합니다.Set이것들과 함께

언급URL : https://stackoverflow.com/questions/11054482/why-cant-i-define-my-workbook-as-an-object

반응형