autohotkey에서 com 객체를 사용하여 열거 나 닫지 않고 Excel 시트에 값을 추가하는 방법은 무엇입니까?


0

이 코드를 사용하여 Excel 시트를 열고 닫지 않고 셀에 일부 값을 추가하려고합니다.

f1::
Xl := ComObjCreate("Excel.Application")
Xl.Workbooks.Open("c:\Users\Manoj Aggarwal\Desktop\DATA.xlsx") 
Xl.Visible := False
Xl.Range("b1").Value:= "jaisiaramji"
Workbooks.Save()
Workbooks.Quit()
Workbooks:="" 
Return

그들은 작동하지만 수동으로 Excel 시트를 열면 DATA.xlsx가 이미 열려있는 마사지가 나타납니다 . 다시 열면 변경 한 내용이 삭제됩니다. DATA.xlsx을 (를) 다시 열겠습니까? 친절하게 도와주고 코드에서 어떤 수정을 해야하는지 제안하십시오. 감사.

답변:


0

코드에서 작동하는 것으로 코드를 가져 오는 방법을 모르지만 통합 문서에 대한 참조가 있어야하며 파일을 닫을 때 파일을 저장하려면 첫 번째 매개 변수가 true로 설정된 Workbook.Close 메서드 를 사용해야합니다 .

현재 시트가 아닌 활성 시트 및 통합 문서에 대한 참조를 얻으 려면 여기 게시물의 중간 코드 블록을 참조하십시오. 그러나 시도하고 테스트해야 할 것이 있습니다. 당신이 하나에 도달하면 작동하는 솔루션을 보는 데 관심이 있습니다.

Excel 개체로 작업 할 때 관심이있는 것은 작업에 대한 각각의 고유 한 방법이있는 세 가지 다른 개체 (응용 프로그램, 통합 문서 및 워크 시트)에 대한 참조를 가질 수 있다는 것입니다. MSDN 설명서를 읽지 않으면 처음에는 약간 불투명합니다.


또한, 당신이 Workbooks해야 할 참조는 닫고 싶은 통합 문서에 대한 참조가 필요하다는 것과 동일한 참조라고 생각하지 않지만 완전히 확신 할 수는 없습니다. 나는 경우에 대비하여 테스트를 시도했지만 동일한 작동하지 않는 결과를 얻었습니다.
JJohnston2

0

나는 아래 2 줄을 시도했고 그것은 나를 위해 일했다 :

xl.ActiveWorkbook.save (); 저장 파일

Xl.ActiveWorkbook.close (); 닫는 파일

따라서 더 이상 오류 메시지 "DATA.xlsx가 이미 열려 있습니다. 다시 열면 변경 내용이 삭제됩니다. DATA.xlsx를 다시 열겠습니까?"

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.