標題:
[發問]
EXCELE 2013 vba for windows 10 無法正常執行
[打印本頁]
作者:
frantz
時間:
2015-9-8 18:28
標題:
EXCELE 2013 vba for windows 10 無法正常執行
請問各位資深前輩
小弟近日使用windows 10環境下執行此編碼
發現按了之後,數據全抓不到。
但在windows 7環境下確可以。
不知道是網站寫法有改了,還是本身系統造成的
如果是系統造成的,請問有沒有別的方式可以進行調整。。。
Private Sub CommandButton4_Click()
Dim i As Integer, S As Integer, k As Integer, a As Object, ii, j, i1 As Integer, i2 As Integer, i3 As Integer
'DataObject 物件 在進行轉換動作時,做為格式化文字資料的暫存區域。其也可以暫存和儲存在 DataObject 的文字片段相關的格式。
'宣告 Dim D As New DataObject '須在工具-> 設定引用項目加入 新增引用 Microsoft Forms 2.0 Object Library ,或於專案 加入一表單即可
'證交所信用交易統計------------------------------------
'i3 = Mid(j, 1, 4)
'Sheets("量").Range("q1").Value = i3
'rul = "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report" & "/A112" & j & "MS.php?select2=MS&chk_date=" & 104 & "/" & 3 & "/" & 13
'"http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201503/A11220150313MS.php?select2=MS&chk_date=104/03/13"
'http://www.tpex.org.tw/web/stock/margin_trading/margin_balance/margin_bal_print.php?l=zh-tw&d=104/04/01&s=0,asc,1
'j = Sheets("量").Range("a1").Value
Application.DisplayStatusBar = True
Application.ScreenUpdating = False
Sheets("量").Range("Q1").Select
ActiveCell.FormulaR1C1 = "=TEXT(MID(RC[-16],1,LEN(RC[-16])),""YYY"")"
Sheets("量").Range("R1").Select
ActiveCell.FormulaR1C1 = "=TEXT(MID(RC[-17],1,LEN(RC[-17])),""mm"")"
Sheets("量").Range("S1").Select
ActiveCell.FormulaR1C1 = "=TEXT(MID(RC[-18],1,LEN(RC[-18])),""dd"")"
Sheets("量").Range("T1").Select
ActiveCell.FormulaR1C1 = "=TEXT(MID(RC[-19],1,LEN(RC[-19])),""e"")"
j = Sheets("量").Range("q1").Value
j1 = Sheets("量").Range("r1").Value
j2 = Sheets("量").Range("s1").Value
j3 = Sheets("量").Range("t1").Value
'http://www.tpex.org.tw/web/stock/margin_trading/margin_balance/margin_bal_print.php?l=zh-tw&d=104/04/01&s=0,asc,1
'http://www.tpex.org.tw/web/stock/margin_trading/margin_balance/margin_bal_print.php?l=zh-tw&d=104/08/17&s=0,asc,1
ii = "http://www.tpex.org.tw/web/stock/margin_trading/margin_balance/margin_bal_print.php?l=zh-tw&d=" & j3 & "/" & j1 & "/" & j2 & "&s=0,asc,1"
Sheets("量").Range("o1").Value = i
With CreateObject("InternetExplorer.Application")
'.Visible = False
'.Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/genpage/Report201503/A11220150313MS.php?select2=MS&chk_date=104/03/13"
.Navigate ii
'上面為證交所三大法人買賣金額統計表連結
Do While .Busy Or .readyState <> 4: DoEvents: Loop
Application.Wait (Now + TimeValue("00:00:10"))
Ep15 .document.getElementsByTagName("table")(0).outerhtml
'關閉網頁
.Quit
End With
Set a = CreateObject("InternetExplorer.Application")
Set a = Nothing
Application.StatusBar = False
End Sub
Sub Ep15(S As String)
Dim d As New DataObject
Dim shape As Excel.shape
Application.DisplayStatusBar = True
Application.ScreenUpdating = False
'DataObject 物件 在進行轉換動作時,做為格式化文字資料的暫存區域。其也可以暫存和儲存在 DataObject 的文字片段相關的格式。
'宣告 Dim D As New DataObject '須在工具-> 設定引用項目加入 新增引用 Microsoft Forms 2.0 Object Library ,或於專案 加入一表單即可
With d
.SetText S
.PutInClipboard
With Sheets("上市櫃三大法人").Select
Sheets("上市櫃三大法人").Range("P10:AI12").Clear
Sheets("上市櫃三大法人").Range("P10").Select
Sheets("上市櫃三大法人").PasteSpecial Format:="Unicode 文字"
For Each shape In ActiveSheet.Shapes
shape.Delete
Next
xRow = Sheets("上市櫃三大法人").Range("P65536").End(xlUp).Row
For i = 15 To xRow
If Sheets("上市櫃三大法人").Range("P" & i).Value = "合計(張)" Then
Sheets("量").Range("M5").Value = Sheets("上市櫃三大法人").Range("V" & i).Value
Sheets("量").Range("N5").Value = Sheets("上市櫃三大法人").Range("ad" & i).Value
End If
If Sheets("上市櫃三大法人").Range("P" & i).Value = "融資金(仟元)" Then
Sheets("量").Range("O5").Value = Sheets("上市櫃三大法人").Range("V" & i).Value
End If
Next
End With
End With
Set d = Nothing
Application.StatusBar = False
Sheets("量").Select
Sheets("量").Range("A1").Select
MsgBox "上櫃(信)下載完成!"
End Sub
複製代碼
作者:
Joforn
時間:
2015-9-11 21:16
测试一下是否是CreateObject("InternetExplorer.Application")返回的值为Nothing
作者:
lp986749
時間:
2015-9-14 11:46
本帖最後由 lp986749 於 2015-9-14 11:49 編輯
我也發生過用EXCEL 2007 2003 寫巨集在 WIN 7 WIN8 WIN8.1下用 OFFICE2013 都可執行很順利 但在 WIN 10 相同OFFICE2013 卻當機不能執行巨集 自己也很困擾 不知為什麼原因?
作者:
ting870520
時間:
2015-9-15 08:42
回復
1#
frantz
你好:我對VBA不懂,但我看到你的VBA裡有很多地方使用到中華民國曆,不知你是否有發現到在WIN10的環境下,EXCEL已經無法使用"中華民國曆"了,我想是否是因為這個原因。以上只是我個人的猜想,如有錯誤,還請指教!!謝謝!!
作者:
lp986749
時間:
2015-9-16 10:00
確實WIN10的環境下,EXCEL已經無法使用"中華民國曆"了,EXCEL 2007 2003 寫巨集如
Format(Date - 30, "EMM") 須改為 Format(Date - 30, "EEMM") 原顯示 10408 後者顯示201508
巨集就可執行 因為WIN10 日期格式更改如2012/02/10
作者:
lp986749
時間:
2015-9-16 10:01
確實WIN10的環境下,EXCEL已經無法使用"中華民國曆"了,EXCEL 2007 2003 寫巨集如
Format(Date - 30, "EMM") 須改為 Format(Date - 30, "EEMM") 原顯示 10408 後者顯示201508
巨集就可執行 因為WIN10 日期格式更改如2012/02/10
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)