2016-10-12 2 views
0

The exact same issue I have엑셀 VBA이 필드를 인식하지 못합니다 웹 페이지가 나는 내가 AngularJS와 형태로 일부 데이터를 붙여 엑셀 VBA 매크로를 작성했습니다

을 제출할 때 채워집니다 - 그것은 (인터넷 익스플로러를 엽니 다 11) 창에서 양식이 들어있는 페이지로 이동하여 특정 요소를 찾고있는 문서 트리를 해당 ID로 찾아서 공백에서 엑셀 시트의 공백이 아닌 문자열 으로 변경합니다. 그러나 양식을 제출하면 폼 로직이 모든 필수 필드를 여전히 공란으로 처리하여 공란으로 간주되는 필드 주위에 빨간색 상자를 그립니다. 는 (나는 그것을 삭제, 각 필드에 클릭 즉시 를 붙여 넣은 데이터의 끝에 임의의 문자를 입력하고 의해이 시점에서 개입 할 수 있습니다, 이것은 필수 필드가 지금 가득 논리를 트리거합니다.)

이 페이지는 여기에서 링크 된 부분은 위에 강조 표시된 관련 부분과 똑같은 문제입니다. 나머지는 나에 대해 아무것도하지 않습니다. 제출 내용을 찾는 것에 대한 의견에서 말한 내용을 시도했지만 제대로 작동하지 않거나 제대로 제출하기 위해 VBA 코드를 수정해야한다고 생각합니다.

필자가 직접 입력 할 때 필드가 기준을 충족하는지 확인하고 괜찮다고 표시하는지 확인할 수 있습니다. 필드를 채운 후에이 페이지를 강제로 확인하려면 어떻게합니까?

이것은 내가 시도한 것입니다. 이들 중 일부는 당신은 필드에 input 이벤트를 트리거 할 필요가 .Document.InvokeMember ("vm.onSubmit()")
Set HTMLForm = .Document.GetElementsByName("vm.onSubmit()")
HTMLForm.Submit
.Document.getElementsByClassName("btn btn-primary btn-lg btn-next")(0).Click ‘works and goes to next page if the fields was working
.Document.forms(0).submit 'works, just resets the page to previous page

+0

웹 사이트 URL 또는 지금까지 시도한 코드를 공유 할 수 있습니까? –

+0

질문에 추가하십시오. –

답변

0


변경, 내가 찾은 물건이었다 제출하는 코드의 끝에서 'Call .Document.getelementbyid("firstName").SetAttribute("value", ActiveCell.Value) 'Tried a different way but stayed with my original lines next
Set firstName = .Document.GetElementById("firstName") ‘works
firstName.Value = ActiveCell.Value 'works but then for submit, field says empty


을 시도했다.

var inputs = document.getElementsByTagName("input"); 
for (var input in inputs) { 
    var $input = angular.element(input); 
    $input.triggerHandler('input'); 
} 
+0

VBA 코드에서이 시도했지만 인식되지 않습니다. 이 뭔가가 있다고 가정하지만이 사용하여 입력 이벤트 필드를 트리거하는 방법 또는 VBA 그들을 트리거해야합니까? –

+0

브라우저 Javascript VM에서 실행해야합니다. 하지만 나는 VBA에서 그렇게하는 법을 모른다. 어쩌면 자바 스크립트를 피하면서 이벤트를 직접 트리거 할 수 있습니다. – flob