programing

CreateObject("Excel") 간의 차이입니다.애플리케이션").문제집.워크북을 열고 작업장만 엽니다.열다.

megabox 2023. 6. 28. 21:34
반응형

CreateObject("Excel") 간의 차이입니다.애플리케이션").문제집.워크북을 열고 작업장만 엽니다.열다.

현재 사용 중입니다.Workbooks.Open디렉터리에 포함된 많은 파일을 처리합니다.그러나 이러한 파일을 열거나 닫으면 작업 표시줄에 파일이 표시되므로 계속 깜박이는 것을 방지할 수 있습니다.

저는 제가 사용할 수 있는 제안을 받았습니다.CreateObject숨겨진 새 Excel 인스턴스를 열기 때문에 새 인스턴스를 만듭니다.

  1. 새로운 문제집을 여는 두 가지 방법 사이에 성능 면에서 다른 점이 있습니까?

  2. 또한 다음을 사용하여 생성된 Excel 인스턴스를 하나만 사용해야 합니까?CreateObject모든 워크북을 열려면 또는 처리해야 하는 각 워크북에 대해 하나의 인스턴스를 만들어야 합니까(메모리가 많이 낭비되고 속도가 느려지는 것 같습니다)?

Workbooks.Open현재 MS Excel 인스턴스를 사용합니다.CreateObject(“Excel.Application”)새 MS Excel 인스턴스를 만듭니다.자세한 내용은 다음을 참조하십시오.CreateObject 여기에

간단히 실행Workbooks.Open새 인스턴스를 만든 후에는 새 인스턴스에서 워크북이 열리지 않습니다.당신은 그것과 결부되어야 할 것입니다.예를들면

Dim oXLApp As Object, wb As Object

Set oXLApp = CreateObject("Excel.Application")

'~~> Hide Excel
oXLApp.Visible = False

'~~> Open files
Set wb = oXLApp.Workbooks.Open("C:\Sample.xls")

당신의 다른 질문과 관련하여.

또한 CreateObject를 사용하여 만든 Excel 인스턴스를 하나만 사용하여 모든 워크북을 열어야 합니까? 아니면 각 워크북에 대해 하나씩 인스턴스를 만들어야 합니까?

여러 인스턴스가 필요하지 않습니다.하나의 인스턴스로 작업할 수 있습니다.예를들면

Dim oXLApp As Object, wb As Object

Set oXLApp = CreateObject("Excel.Application")

'~~> Hide Excel
oXLApp.Visible = False

'~~> Open files
Set wb = oXLApp.Workbooks.Open("C:\Sample1.xls")

'
'~~> Do some Stuff
'

wb.Close (False)

'~~> Open files
Set wb = oXLApp.Workbooks.Open("C:\Sample2.xls")
'
'~~> Do some Stuff
'

wb.Close (False)

'
'~~> And So on
'

지연 바인딩은 초기 바인딩보다 약간 느리지만 차이를 알아차리지 못할 수도 있습니다.예, 모든 문제집에 대해 하나의 인스턴스만 사용할 수 있습니다.참고:

Dim xl As New Excel.Application

xl.Workbooks.Open "z:\docs\test.xlsm"

다음과 같이 말하지 않으면 표시되지 않습니다.

xl.Visible = True

오류 트랩의 모든 인스턴스를 닫아야 합니다.

언급URL : https://stackoverflow.com/questions/13044473/difference-between-createobjectexcel-application-workbooks-open-and-just-wo

반응형