2014-12-05 18 views
1

Excel 워크 시트에 포함 된 데이터 행을 웹 폼에 복사/붙여 넣기하려면 AHKscript 내의 COM 개체를 사용하려고합니다. Excel 워크 시트에 포함 된 데이터의 마지막 행을 추출하는 데 문제가있어 데이터가 포함 된 행에 대해서만 스크립트를 반복하도록 말할 수 있습니다.AHK 스크립트의 COM 개체 내에서 Cells.Find() 메서드의 올바른 구문은 무엇입니까?

나는 마지막 행을 계산하는 stackflow herehere에 답을 사용하지만 작동하도록 코드를 받고 힘든 시간을 보내고 있습니다 :

filepath := "C:\.....\test.xlsx" 
X1 := ComObjCreate("Excel.Application") 
X1.Visible := 1 
X1.Workbooks.Open(filepath) 
X1.ActiveWorkbook.Sheets("Input").Activate 
Rows := X1.ActiveSheet.Cells.Find(What:="*", After:=X1.ActiveSheet.Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
MsgBox % "value is" . Rows 
Return 

코드 휴식을 6 행 (행에 =를. ..), 0x800200005 반환 - 특히 '찾기'메서드를 사용하여 형식이 일치하지 않는 오류가 발생했습니다.

나 한테 무슨 수수께끼 인 것은 즉

:

  1. 나는 SearchOrder를 제거하고 엑셀
  2. 내에서 VBA에서 매크로로 붙여 넣을 때 SearchDirection 라인 6 작품
  3. 코드를 매개 변수 라인 6 개 작품의 코드
  4. 매크로 레코더를 사용할 때 Excel에서 VBA로 기록되는 코드와 코드가 일부 유사합니다 (일부 매개 변수 제외)

Windows 7 Enterprise, MS Excel 2010 및 Autoho tkey 1.1.16.05.

+1

xlByRows 및 xlPrevious는 우수합니다. 그리고 ahk는 스크립트에서 정의해야 할 일을 알지 못합니다. – blackholyman

+0

정답을 발견하면 게시하고 동의하십시오. – vasili111

답변

0

상수 xlByRowsxlPrevious은 AutoHotkey에 아무런 의미가 없으며 빈 변수입니다.
xlByRows := 1
xlPrevious := 2

출처 :
Microsoft Excel에서 상수 [엑셀 그들은 6

는 스크립트의 어딘가에 해당이 라인을 포함 라인 전에 스크립트에서 어떤 점에서 숫자 값을 할당 받아야합니다 2003 VBA 언어 참조]
https://msdn.microsoft.com/en-us/library/office/aa221100(v=office.11).aspx

참고 : 상수는 Excel VBA p 내에서 검색 할 수 있습니다. 로퍼 (즉, AutoHotkey를 통하지 않고)
MsgBox xlByRows & " " & xlPrevious과 같은 줄을 입력하십시오.

참고 : 실행중인 AutoHotkey를 스크립트의 변수를 보려면, 당신은 그것의 트레이 아이콘을 마우스 오른쪽 버튼으로 클릭하고 Open을 클릭 후 메뉴 바에서 View, Variables and their contents, 로 이동 한 후 아직 번호가 지정되지 않은 XL 상수를 확인하십시오.