On Mar 22, 2017, at 4:26 PM, 方家晟 wrote:
Micheal您好,
又冒昧地打擾您了。在討論區看到幾位留言表示重新下載檔案仍有錯誤,結果多是因為沒有確實下載到最新版,提供一個不是很要緊的解決方案(會增加EXCEL負擔),或許可以避免使用者疏忽版本號的問題:
1.需要先將這個Function完整地放在模組內
已知〈請重新下載盈再表1703g:修改 IRR〉文章的網址,若文章網址有變動則必需要修改。而另一個必要條件是文章標題"盈再表"&"1703g"&":"用詞用字結構需一致,即版本號夾在"盈再表"和":"之間,否則會出錯。
Function 檢查版本()
Dim title As String
' 取得網頁資料
With CreateObject("Microsoft.XMLHTTP")
.Open "POST", "
http://mikeon88.freebbs.tw/viewthread.php?tid=42772", False
.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=big5"
.send
title = .responsebody
End With
' 處理文字編碼
With CreateObject("ADODB.Stream")
.Type = 2
.Open
.Writetext title
.Position = 0
.Charset = "BIG5"
.Position = 2
' 取得文章標題
title = Split(Split(.ReadText, "</title>", , vbTextCompare)(0), "<title>", , vbTextCompare)(1)
.Close
End With
' 將文章標題切割出"營再表"之後、":"之前的版本號
title = Split(Split(title, "盈再表", , vbTextCompare)(1), ":", , vbTextCompare)(0)
' 檢查這個EXCEL檔名內是否有最新版本號
If InStr(1, ThisWorkbook.Name, title) = 0 Then
檢查版本 = "請更新至:" & title
Else
檢查版本 = "最新版本"
End If
End Function
2.找一個需要啟動檢查版本的地方放置這句,透過對話窗格告知版本
MsgBox 檢查版本
通常可能會在開啟時做這個動作,例如放在ThisWorkbook內觸發:
Private Sub Workbook_Open()
MsgBox 檢查版本
End Sub
如果認為已經是最新版本則不需要通知,需要改成這三句:
Dim 版本 As String
版本 = 檢查版本
If 版本 <> "最新版本" then MsgBox 版本
(非學員) 方家晟