Board logo

標題: [發問] Application.AskToUpdateLinks = False [打印本頁]

作者: t8899    時間: 2014-6-25 09:16     標題: Application.AskToUpdateLinks = False

Private Sub Workbook_Open()
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
ThisWorkbook.UpdateLinks = xlUpdateLinksAlways
End Sub
[attach]18551[/attach]
Application.AskToUpdateLinks = False
這應該是檔案的更新連結在用的吧??
web 查詢的更新也是這個嗎?我試過無效 (一開檔就自動更新,不要詢問)
作者: GBKEE    時間: 2014-6-25 09:41

回復 1# t8899

取消這選項

[attach]18552[/attach]



   
  1. Private Sub Workbook_Open()
  2. MsgBox "test"
  3. Application.DisplayAlerts = False
  4. Application.AskToUpdateLinks = False
  5. ThisWorkbook.UpdateLinks = xlUpdateLinksAlways
  6. Sheet5.QueryTables(1).Refresh 0   '加上這行
  7. End Sub
複製代碼

作者: t8899    時間: 2014-6-25 10:04

本帖最後由 t8899 於 2014-6-25 10:06 編輯
回復  t8899

取消這選項
GBKEE 發表於 2014-6-25 09:41

謝謝,請問 Sheet5.QueryTables(1).Refresh 0 這如何翻譯?
作者: t8899    時間: 2014-6-25 10:44

本帖最後由 t8899 於 2014-6-25 10:49 編輯
回復  t8899

取消這選項
GBKEE 發表於 2014-6-25 09:41

報歉,問題又來了!
我這檔案,是不想出現詢問視窗,直接更新
但我在開另一檔案我郤想要讓它詢問,
我想這關鍵應該在於Application.AskToUpdateLinks = False 這開關
這開關等於 選項=>編輯==>自動更新連結
我把Application.AskToUpdateLinks = true 放在 另一檔案,又造成原來問題
如何讓兩者都能兼顧到! ??
作者: GBKEE    時間: 2014-6-26 05:28

回復 4# t8899
  1. RefreshOnFileOpen 屬性 如果每次開啟活頁簿時,樞紐分析表快取記憶體或查詢表會自動更新則為 True。預設值為 False。讀/寫 Boolean。
複製代碼
QueryTables 如設定.RefreshOnFileOpen = True
  1. Private Sub Workbook_Open()
  2. Application.AskToUpdateLinks = False
  3. ThisWorkbook.UpdateLinks = xlUpdateLinksNever  
  4. 程序上,這些的設定是無效
複製代碼
你想要的是這樣嗎
  1. Private Sub Workbook_Open()   
  2.     If LCase(Me.Name) = "book1.xls" Then
  3.         If MsgBox("開啟外部更新?", vbYesNo) = vbYes Then
  4.             Sheet5.QueryTables(1).Refresh BackgroundQuery:=False
  5.         End If
  6.     ElseIf LCase(Me.Name) <> "book1.xls" Then
  7.         Sheet5.QueryTables(1).Refresh BackgroundQuery:=False
  8.     End If
  9. End Sub
複製代碼

作者: t8899    時間: 2014-6-26 06:39

本帖最後由 t8899 於 2014-6-26 06:52 編輯
回復  t8899 QueryTables 如設定.RefreshOnFileOpen = True你想要的是這樣嗎
GBKEE 發表於 2014-6-26 05:28


Application.AskToUpdateLinks = False(TRUE)
我試過,這開關原預設不是讀進來馬上生效,要存檔跳出再進來才生效
到 選項=>編輯==>自動更新連結 就知道狀況
如果馬上生效只要把Application.AskToUpdateLinks = False(TRUE) 放在.OPEN就沒問題了

更新包括內部外部
A.XLS  ==> 開檔,要詢問(要不要更新)
B.XLS  ==> 開檔,不要詢問(直接更新)

我把下面此段放在 B.XLS
Private Sub Workbook_Open()
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
ThisWorkbook.UpdateLinks = xlUpdateLinksAlways
Sheet5.QueryTables(1).Refresh 0   '加上這行
END SUB
開後存檔讀A.XLS
A.XLS  也是沒詢問,直接更新
如果在A.XLS 放入 Application.AskToUpdateLinks = TURE
不會馬上生效,存檔跳出再進來才會生效
接下來,回頭再打開B, (又出現要不要更新的詢息了(因為已被A更改為 TRUE))
B 要再存檔,再開檔才不會出現提示的訊息
作者: GBKEE    時間: 2014-6-28 05:27

本帖最後由 GBKEE 於 2014-6-28 05:30 編輯

回復 6# t8899


   
回頭再打開B, (又出現要不要更新的詢息了(因為已被A更改為 TRUE))

A.XLS ThisWorkbook模組加上 試試看
  1. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  2.     Application.AskToUpdateLinks = False
  3. End Sub
  4. Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
  5.      Application.AskToUpdateLinks = False
  6. End Sub
複製代碼

作者: t8899    時間: 2014-6-28 06:59

本帖最後由 t8899 於 2014-6-28 07:08 編輯
回復  t8899
A.XLS ThisWorkbook模組加上 試試看
GBKEE 發表於 2014-6-28 05:27


此例 Workbook_BeforeClose  跟 auto_close 應該沒什差別
這之前我已用auto_close 試過,A關檔前設為Application.AskToUpdateLinks = False
則跳出後再開B檔 有效,但對A檔無效 (A檔是要詢問)
excel 會先讀 選項=>編輯==>自動更新連結這開關
再讀所選的檔案
Application.AskToUpdateLinks =>將此開關設為enable 或disable
作者: GBKEE    時間: 2014-6-28 09:11

回復 8# t8899
但對A檔無效 (A檔是要詢問)
請說一下你的流程
作者: t8899    時間: 2014-6-28 10:08

回復  t8899
請說一下你的流程
GBKEE 發表於 2014-6-28 09:11

我再詳細測試如下
A 跟  B 沒問題  (皆一般WEB連結)

A1 跟 B   (A1有問題A1為DDE連結, 要詢問(沒出現詢問視窗)
如附檔[attach]18577[/attach]
作者: GBKEE    時間: 2014-6-28 11:14

回復 10# t8899

A1.XLS
  1. Private Sub Workbook_Open()
  2.   Application.AskToUpdateLinks = True
  3.   UpdateLinks = xlUpdateLinksUserSetting
  4. End Sub
複製代碼

作者: t8899    時間: 2014-6-29 03:15

回復  t8899

A1.XLS
GBKEE 發表於 2014-6-28 11:14


先開B 再開A1 沒詢問 ?
A1下面兩段拿掉也一樣沒詢問?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.AskToUpdateLinks = False
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
     Application.AskToUpdateLinks = False
End Sub
作者: t8899    時間: 2014-7-9 06:20

回復  t8899

A1.XLS
GBKEE 發表於 2014-6-28 11:14


我在B.xls  auto_close 放這兩行就OK了,供參考
Sub Auto_Close()
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
    End Sub
作者: GBKEE    時間: 2014-7-9 13:55

回復 13# t8899

有進步了




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