2009-12-18 4 views
1

Microsoft Excel을 사용하여 웹 서비스에 요청과 같은 Ajax 요청을 성공적으로 만들었습니다.ServerXMLHTTP에서 XML로 피벗 테이블 새로 고침

내 목표는 사용자가 클릭하여 정보를 끌어 올리고 엑셀 문서의 피벗 테이블과 차트를 새로 고쳐 불필요한 정보를 반영 할 수있게하는 것입니다.

XML을 원본으로 사용하도록 피벗 테이블을 설정할 수 있습니까? 그렇지 않다면 테이블은 어떻습니까?

그렇지 않으면 기존 정보를 지우고 다시 채우고 피벗 테이블을 새로 고쳐야합니다.

매크로 내에 만 피벗 테이블을 존재시킬 수 있습니까? 나는 현재 "Sub"기능으로 정보를 얻고 있습니다.

현재 정보가 DomDocument로로드되어 있습니다.

Dim xmlResult As MSXML2.DOMDocument 
    Set xmlResult = New MSXML2.DOMDocument 
    xmlResult.LoadXML (results) 
+0

괄호는 마지막 행에 필요하지 않습니다. - xmlResult.loadXML 결과 – barrowc

답변

0

두 가지 방법이 있습니다.

첫 번째 방법은 XML 맵을 사용하는 것입니다. 먼저 메뉴 개발자의 옵션 XML 소스 (Excel 2003에서는 메뉴 데이터라고 생각합니다)를 사용하여 XML 스키마 또는 샘플 XML 데이터 파일에서 워크 시트로 맵을 만듭니다. 완료되면 매핑 된 범위에 표시 할 XML 데이터를 가져올 수 있습니다. 그런 다음 매핑 된 범위에 이름을 할당하고 마지막으로 명명 된 범위에 피벗 테이블을 작성해야합니다. HTTP 서비스에서 매핑 된 XML 범위 새로 고침은 VBA에서 비교적 쉽게 스크립팅 할 수 있습니다. 이름이 지정된 범위는 새로운 데이터 크기로 자동 조정됩니다. 여기서 명백한 한계는 데이터를 보관할 워크 시트의 크기로, Excel 2007 이전에는 종종 65,000 개의 행만있는 문제였습니다.

나는 단지 막연하게 기억하고 피벗 캐시 개체의 Recordset 속성을 설정하는 방법을 사용했습니다. 레코드 세트는 일반적으로 데이터베이스 쿼리에서 가져 오지만 MS Persist XML 인 경우 XML로 빌드 할 수 있습니다. XML을 MS Persist XML로 변형해야하므로 다소 어려워 질 것입니다. 다음은 Recordset을 MS Persist XML로 다시 변환하는 스크립트입니다. http://www.freevbcode.com/ShowCode.Asp?ID=1204

관련 문제