Board logo

標題: 如何讓 『注意!日期比對不一樣!』 的彈出視窗能優先顯示呢? [打印本頁]

作者: RCRG    時間: 2015-11-18 05:20     標題: 如何讓 『注意!日期比對不一樣!』 的彈出視窗能優先顯示呢?

本帖最後由 RCRG 於 2015-11-18 05:22 編輯

[attach]22477[/attach]

下載資料夾後,會有三個檔案,而主要問題描述在主檔,其他兩個 資料檔和日期比對檔 只是比對參照用,可不開、不理會之。
作者: GBKEE    時間: 2015-11-18 09:08

本帖最後由 GBKEE 於 2015-11-21 14:10 編輯

回復 1# RCRG
  1. Option Explicit
  2. Private Sub Workbook_Open()
  3.      檢測資料檔
  4.      X.Quit
  5.      If xMsg = "" Then GoTo 999 '若已開放讀取,直接跳至〔提示文字〕
  6.     MsgBox xMsg & Chr(10) & Chr(10) & _
  7.     "在報表重新開放權限前,本檔案將自動關閉,  " & Chr(10) & Chr(10) & _
  8.     "***若有疑問,請洽檔案程式管理人***"
  9.     Application.DisplayAlerts = False
  10.     If Workbooks.Count = 1 Then
  11.         Application.Quit
  12.     Else
  13.         ThisWorkbook.Close 0
  14.     End If
  15.     Application.DisplayAlerts = True
  16.     Exit Sub
  17. 999:
  18.     If Sheet1.[a1] <> Str Then MsgBox "注意!日期比對不一樣!", 48  '這樣優先對嗎?        
  19.     If Info2 <> "" Then MsgBox Info2   
  20.     Worksheets("TEST").Protect Password:="123", userInterFaceonly:=True
  21.     Worksheets("TEST").EnableAutoFilter = True
  22. End Sub
複製代碼
  1. Option Explicit
  2. Public xMsg$, Info1$, Info2$       '-------------------------------------------
  3. Public Str$, X As New Application '-------------------------------------------
  4. Sub 檢測資料檔()
  5.     Dim XB As Workbook, XSHT As Worksheet, DataFile As String
  6.     DataFile = ThisWorkbook.Path & "\資料檔.xls" '(注意)正式使用時,更改為實際固定的〔路徑+檔名〕
  7.     xMsg = "": Info1 = "": Info2 = ""
  8.     If Dir(DataFile) = "" Then xMsg = "找不到檔案,或沒有權限讀取!  ": Exit Sub
  9.     Set XB = X.Workbooks.Open(DataFile, ReadOnly:=True)
  10.     On Error Resume Next
  11.     Set XSHT = XB.Sheets("權限設定")
  12.     If XSHT Is Nothing Then
  13.         xMsg = "偵測錯誤:DATA資料檔〔權限設定〕工作表不存在!  "
  14.         Exit Sub
  15.     End If
  16.     Info1 = XSHT.Range("C2").Value '權限設定值
  17.     Info2 = XSHT.Range("C4").Value '開啟檔案時的提示文字
  18.     ''''''''''''''''''''''''''''''''''''''''''''''''
  19.     DataFile = ThisWorkbook.Path & "\日期比對檔.xls"
  20.     Str = X.Workbooks.Open(DataFile, ReadOnly:=True).Sheets("工作表A").[a1]
  21.     '''''''''''''''''''''''''''''''''''''''''''''''''
  22.     If Info1 = "OFF" Then xMsg = "目前禁止使用! ": Exit Sub
  23.     If Info1 = "Update" Then xMsg = "已更新,舊檔不能再使用,請重新下載! ": Exit Sub
  24. End Sub
複製代碼

作者: RCRG    時間: 2015-11-21 03:59

回復 2# GBKEE


    請問GBKEE大,我貼上您的VBA使用後,發現只會跑出"注意!日期比對不一樣!"的彈出視窗,資料檔的C4欄位彈出視窗反而不會顯示了,是我哪裡用錯了嗎?
因為我的需求是只想把 "注意!日期比對不一樣!" 彈出視窗能優先顯示,但不異動到我原本VBA的功能,如果會影響到我本來的VBA效果,那這樣就因小失大了..QQ
作者: RCRG    時間: 2015-11-21 12:42

回復 2# GBKEE


   結果論的話,這樣的確是我要的;

不過,我原本This Workbook內 "日期比對檔"的路徑怎不見了!QQ

因為他們是有關連性的,如果 "主檔" 和 "日期比對檔" A1欄的日期不一樣就會彈出視窗來提醒使用者,但如果日期是一樣的就不會彈出視窗;
不知是否能幫我把路徑加回去呢? 有勞GBKEE大了!謝謝!
作者: GBKEE    時間: 2015-11-21 14:13

回復 4# RCRG

自己修改試試看
  1. Info1 = XSHT.Range("C2").Value '權限設定值
  2.     Info2 = XSHT.Range("C4").Value '開啟檔案時的提示文字
  3.     ''''''''''''''''''''''''''''''''''''''''''''''''
  4.     'DataFile = ThisWorkbook.Path & "\日期比對檔.xls"
  5.     DataFile = "D:\Documents and Settings\桌面\解題資料夾\日期比對檔.xls"
  6.    
  7.     Str = X.Workbooks.Open(DataFile, ReadOnly:=True).Sheets("工作表A").[a1]
  8.     '''''''''''''''''''''''''''''''''''''''''''''''''
複製代碼

作者: RCRG    時間: 2015-11-21 18:10

回復 5# GBKEE


    哦哦!所以是有"日期比對檔"的路徑對吧,是我自己沒看到囉!
呵呵 !不好意思,GBKEE大,現在我再拉回去看還真的有"日期比對檔"的路徑呢!




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