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

이 코드를 사용하여 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을 (를) 다시 열겠습니까?
친절하게 도와주고 코드에서 어떤 수정을 해야하는지 제안하십시오. 감사.



답변

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

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

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


답변

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

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

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

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


답변