Board logo

標題: [發問] 關閉資料更新通知視窗 [打印本頁]

作者: li_hsien    時間: 2015-3-23 15:04     標題: 關閉資料更新通知視窗

小弟寫了一個巨集,執行流程大致如下

選取多個Excel檔 -> 將選取的Excel檔開啟 -> COPY所需欄位到一個Excel總檔

但有時候會碰上資料更新的通知視窗,如下圖
[attach]20484[/attach]

試過Application.DisplayAlerts = False

也沒有用

常常會因此運行中斷

不知有無解法


請各位協助

謝謝!!!
作者: GBKEE    時間: 2015-3-24 07:22

本帖最後由 GBKEE 於 2015-3-24 07:43 編輯

回復 1# li_hsien
  1. Option Explicit
  2. Sub Ex() '不要Copy,給值 Value*******************
  3.     Dim Rng As Range
  4.     Application.AskToUpdateLinks = True
  5.     Set Rng = Workbooks("Ex.XLS").Sheets(1).[A5:F10]
  6.     With Workbooks("TEST.XLS")
  7.         .Sheets(2).[C2].Resize(Rng.Rows.Count, Rng.Columns.Count) = Rng.Value
  8.     End With
  9. End Sub
  10. Sub Ex_All() '如給值 Value,不是你要的期望.**********
  11.     '執行一次,再重新你的檔案程式
  12.    
  13.     'UpdateLinks 屬性 設定 XlUpdateLink 常數,此常數可指出活頁簿更新內嵌 OLE 連線的設定。讀/寫。
  14.     'XlUpdateLinks 可以是這些 XlUpdateLinks 常數之一。
  15.         
  16.     'xlUpdateLinksAlways 永遠更新指定活頁簿的內嵌 OLE 連線。
  17.     'xlUpdateLinksNever 永遠不更新指定活頁簿的內嵌 OLE 連線。
  18.     'xlUpdateLinksUserSetting  根據使用者對指定活頁簿的設定來更新內嵌的 OLE 連線。
  19.    
  20.     Dim WB As Workbook
  21.     For Each WB In Workbooks
  22.         WB.UpdateLinks = xlUpdateLinksAlways
  23.         WB.Close True
  24.     Next
  25. End Sub
複製代碼

作者: li_hsien    時間: 2015-3-28 11:06

回復 2# GBKEE

感謝版主協助

每次看您操作的方式都很受教

不單單只是用COPY而已


資料連結的部分

我後來用2007版就沒有此問題了

不知為何2003的會跳出詢問@@
作者: GBKEE    時間: 2015-3-28 11:16

回復 3# li_hsien
我只有2003版,你的問題尚需有此版本的相助.
作者: li_hsien    時間: 2015-3-31 17:43

回復 2# GBKEE

請問版主

我是以下方作法開啟多檔
  1. Private Sub add_data_Click()
  2.     Dim fn As String
  3.     Dim Show_File As Object
  4.     Dim file_count As Integer
  5.     Dim SF_name As String
  6.    
  7.     Application.DisplayAlerts = False
  8.    
  9.     fn = ActiveWorkbook.Name

  10.     Set Show_File = Application.FileDialog(msoFileDialogOpen)
  11.    
  12.     With Show_File
  13.          .InitialFileName = ActiveWorkbook.Path & "\*.xls"  '指定 xls檔
  14.          .AllowMultiSelect = True
  15.          .Show
  16.             If .SelectedItems.Count > 0 Then
  17.             
  18.                 For file_count = 1 To .SelectedItems.Count

  19.                     With Workbooks.Open(.SelectedItems(file_count))
  20.                         
  21.                         Debug.Print "SF(" & file_count & "): " & ActiveWorkbook.Name
  22.                         SF_name = ActiveWorkbook.Name
  23.                         MCD_add fn, SF_name
  24.                         .Close 0
  25.                         
  26.                     End With

  27.                 Next
  28.                
  29.             End If
  30.     End With
複製代碼
請問這樣的作法要如何插入WB.UpdateLinks = xlUpdateLinksNever呢?
作者: GBKEE    時間: 2015-4-1 14:23

回復 5# li_hsien
  1. With Workbooks.Open(.SelectedItems(file_count))
複製代碼
這Workbook 須是事先設定.UpdateLinks = xlUpdateLinksNever,
開啟時才會生效.




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