CreateObject("Excel") 간의 차이입니다.애플리케이션").문제집.워크북을 열고 작업장만 엽니다.열다.
현재 사용 중입니다.Workbooks.Open
디렉터리에 포함된 많은 파일을 처리합니다.그러나 이러한 파일을 열거나 닫으면 작업 표시줄에 파일이 표시되므로 계속 깜박이는 것을 방지할 수 있습니다.
저는 제가 사용할 수 있는 제안을 받았습니다.CreateObject
숨겨진 새 Excel 인스턴스를 열기 때문에 새 인스턴스를 만듭니다.
새로운 문제집을 여는 두 가지 방법 사이에 성능 면에서 다른 점이 있습니까?
또한 다음을 사용하여 생성된 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
'programing' 카테고리의 다른 글
Xcode에서 메서드 참조 찾기 (0) | 2023.06.28 |
---|---|
런타임에 프로그래밍 방식으로 요약 주석 가져오기 (0) | 2023.06.28 |
jQuery를 사용하여 ASP.NET 웹 서비스를 호출하는 방법은 무엇입니까? (0) | 2023.06.28 |
이동 평균 계산 (0) | 2023.06.28 |
블록 안에 있는 ";"는 무엇을 의미합니까? (0) | 2023.06.28 |