2013-08-28 76 views
1

我正在使用Excel 2010將表格鏈接到我的服務器上的XML文件。我希望將Excel文件分發給一組人員,並且每次在服務器上更新XML文件時都會更新它。從Excel中刷新XML數據

在Excel中,我使用「Data」,「From Web」提取數據,然後輸入XML文件的路徑。

Excel然後建立一個包含所有數據的表,但如果XML文件在服務器上更新,數據保持靜態,即使我在表上單擊「刷新」或「刷新XML數據」。

它應該能夠下載包含新列的新數據到表中(如果有的話)。

有沒有辦法做到這一點?

回答

3

我不是在VBA方面的專家,在這裏我會做什麼 1.打開重新整理一個Excel文件時,這可以通過

Sub RefreshData() 
    ActiveWorkbook.RefreshAll 
' or you can give specific workbook and worksheet identification 
End Sub 

Private Sub Workbook_Open() 
'Call Refresh Data Subroutine when opening file 
RefreshData 

end sub 
  1. 做,你可以使用工作表激活事件處理程序,如果你有一個文件中的多個工作表。

    私人小組Worksheet_Activate()
    「呼叫刷新數據子程序時打開文件 RefreshData
    結束小組

  2. 更新msexcel的,一旦服務器出現了更新,是沒有意義的數據將可用於只有在文件被打開後才能查看,但是如果你的宏被用於實時監控並且24小時保持打開狀態,那麼我建議不要從服務器發送事件並捕獲VBA,而是每天/小時/分鐘/秒(呼叫刷新在輪詢間隔)取決於您的刷新要求的關鍵性。

    昏暗TimeToRun

    子auto_open() 呼叫Schedulerefresh 結束子

    子Schedulerefersh() TimeToRun =現在+ TIMEVALUE( 「00:00:10」)

    Application.OnTime TimeToRun, "XMLRefersh" 
    

    End Sub

    Sub XMLRefresh()

    「呼叫刷新數據子程序打開文件 RefreshData 呼叫ScheduleRefresh 結束小組

    子AUTO_CLOSE() 時上的錯誤繼續下一步 Application.OnTime TimeToRun, 「XMLRefresh」,假 結束小組