Board logo

標題: [發問] 我有關於Vlookup 的問題想請問 [打印本頁]

作者: peellau    時間: 2014-3-4 10:55     標題: 我有關於Vlookup 的問題想請問

我有一個a.xlsx 裡面有儲存格是用Vlookup去參照b.xlsx 的資料 但一般來說 b.xlsx是另一台電腦開著
本機除了開a.xlsx之外不會再開b.xlsx 但這樣我發現一個問題 如果b.xlsx經由另一台電腦去更新資料
本機端開著a.xlsx並無法即時更新 請問各位大大 有辦法可以即時更新 或者是製作vba按鈕 更新嗎?
作者: huijuang    時間: 2014-3-4 11:32

可以使用『編輯』→『連結』→『更新數值』
這樣應該就可以更新了
當然如果要做成VBA
只要錄製巨集,應該就可以了

不知道其他前輩有沒有更方便的方法?
作者: owen06    時間: 2014-3-4 14:53

回復 1# peellau

用application.ontime去自動執行更新

在a工作表裡的thisworkbook輸入
  1. Private Sub Workbook_Open()
  2. Call 更新
  3. End Sub
複製代碼
在a工作表模組裡新增
  1. Sub 更新()
  2. T1 = Now + TimeSerial(0, 0, 1)
  3. range("xxxxx").QueryTable.Refresh BackgroundQuery:=False    '=>這裡可以改成你自己要的方式
  4. Application.OnTime T1, "更新"
  5. End Sub
複製代碼
TimeSerial(0, 0, 1)是表示一秒更新一次
              時 分 秒
作者: peellau    時間: 2014-3-4 16:38

本帖最後由 peellau 於 2014-3-4 16:39 編輯

回復 3# owen06

owen06  您好 我有嘗試把您的程式碼貼上去
THISWORKBOOK:
Private Sub Workbook_Open()
Call "更新"
End Sub

MODULE1:

Sub 更新()
T1 = Now + TimeSerial(0, 0, 1)
Range("l2:l20000").QueryTable.Refresh BackgroundQuery:=False
Application.OnTime T1, "更新"
End Sub

但會出現應用程式或物件定義上的錯誤@@ 不知道這是什麼問題 嘗試用奇他方法也會這樣
偵錯是指向這行 Range("l2:l20000").QueryTable.Refresh BackgroundQuery:=False
作者: owen06    時間: 2014-3-4 22:57

回復 4# peellau


   如果沒錯的話,應該是因為在模組裡的程式,必需給他指定一個明確的路徑,才有辦法正確執行,
   不然他不知道該去哪執行這個指令,所以你必需再加個sheet("x").range("i2:i20000"),應該就能正常執行了,
   因為我不確定你的檔案內容,但我用匯入web資料的時候,都只要在資料的第一格去按右鍵就能點選更新資料,
   所以如果你那樣執行有問題的話,試著用range("i2")就好了看看
作者: huijuang    時間: 2014-3-6 15:25

回復 4# peellau

THISWORKBOOK:
Private Sub Workbook_Open()
Call "更新"
End Sub

MODULE1:

Sub 更新()
T1 = Now + TimeSerial(0, 0, 1)
Range("l2:l20000").QueryTable.Refresh BackgroundQuery:=False
Application.OnTime T1, "更新"
End Sub

將Range("l2:l20000").QueryTable.Refresh BackgroundQuery:=False
改為    ActiveWorkbook.UpdateLink Type:=xlExcelLinks
再試試看




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)