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.