導(dǎo)出到excel時發(fā)生的故障 [金字塔]
- 咨詢內(nèi)容:
用論壇軟件導(dǎo)出即時數(shù)據(jù)到excel時:
MyXL.Application.activesheet.Range("D" & Cstr(j+1)) = report1.LastHigh
MyXL.Application.activesheet.Range("E" & Cstr(j+1)) = report1.LastLow上述語句導(dǎo)出的總是前天的數(shù)據(jù) 而不是昨天的。請問這是什么問題?謝謝
- 金字塔客服:
你導(dǎo)出哪個品種的幾分鐘數(shù)據(jù)
- 用戶回復(fù):
導(dǎo)出的是期指當(dāng)月 上證指數(shù) 滬深300,日線數(shù)據(jù)。lastclose都對,但lasthigh和lastlow 都是前天的,試了很久,都是這樣,為什么呢?
- 網(wǎng)友回復(fù):
再多給出一些代碼看看,
你檢查檢查,有沒哪些語句會導(dǎo)致j變化
- 網(wǎng)友回復(fù):
Public MyXL
private StockCode(30),StockMarket(30)
Sub APPLICATION_VBAStart()
Call Application.SetTimer(10, 500)
GetExcelFile("D:\Stock.xlsx")
End Sub
Sub APPLICATION_Timer(ID)
GetStockCode
GetNewPrice
end sub
Sub GetNewPrice()
dim i
dim j
on error resume next
i=CDbl(Document.GetPrivateProfileString("Stock","StockCount",1,"D:\StockCode.INI"))
For j=1 to i
application.MsgOut "正在導(dǎo)出:" & StockCode(j) & "行情..."
Set Report1 = marketdata.GetReportData(StockCode(j),StockMarket(j))
MyXL.Application.activesheet.Range("A" & Cstr(j+1)) = StockCode(j)
MyXL.Application.activesheet.Range("B" & Cstr(j+1)) = Report1.NewPrice
MyXL.Application.activesheet.Range("C" & Cstr(j+1)) = Report1.LastClose
MyXL.Application.activesheet.Range("D" & Cstr(j+1)) = Report1.LastHigh
MyXL.Application.activesheet.Range("E" & Cstr(j+1)) = Report1.LastLow
MyXL.Application.activesheet.Range("F" & Cstr(j+1)) = Report1.Open
MyXL.Application.activesheet.Range("G" & Cstr(j+1)) = Report1.High
MyXL.Application.activesheet.Range("H" & Cstr(j+1)) = Report1.Low
Next
End Sub
'取得要監(jiān)控的品種代碼
Sub GetStockCode()
dim i
dim j
i=CDbl(Document.GetPrivateProfileString("Stock","StockCount",1,"D:\StockCode.INI"))
For j=1 to i
StockCode(j)=Document.GetPrivateProfileString("Stock","Code" & Cstr(j),"","D:\StockCode.INI") '品種號碼
StockMarket(j)=Document.GetPrivateProfileString("Stock","Market" & Cstr(j),"","D:\StockCode.INI") '交易所代碼
'application.MsgOut "i:" & i & "," & stockcode(j) & "," & StockMarket(j)
Next
End Sub
'打開Excel
Sub GetExcel()
Const ERR_APP_NOTRUNNING = 429
On Error Resume Next
Set MyXL = GetObject(, "Excel.Application")
If Err = ERR_APP_NOTRUNNING Then
Set MyXL = CreateObject("Excel.Application")
End If
MyXL.Application.Visible = True
End Sub
'打開某個excel文件
Sub GetExcelFile(sFileName)
'此過程暫停使用,替代過程為:GetExcel
Dim sWinName '窗口名
Dim iPos
'測試 Microsoft Excel 的副本是否在運行。
On Error Resume Next '延遲錯誤捕獲。
'不帶第一個參數(shù)調(diào)用 Getobject 函數(shù)將
'返回對該應(yīng)用程序的實例的引用。
'如果該應(yīng)用程序不在運行,則會產(chǎn)生錯誤。
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Set MyXL = CreateObject("Excel.Application")
End if
'將對象變量設(shè)為對要看的文件的引用。
Set MyXL = GetObject(sFileName)
iPos = InStrRev(sFileName, "\", -1, vbTextCompare)
sWinName = Mid(sFileName, iPos + 1, Len(sFileName) - iPos - 4)
'設(shè)置其 Application 屬性,顯示 Microsoft Excel。
'然后使用 MyXL 對象引用的 Windows 集合
'顯示包含該文件的實際窗口。
MyXL.Application.Visible = True
MyXL.Application.ScreenUpdating = True
MyXL.Parent.Windows(1).Activate
MyXl.Application.Sheets(1).Visible=true
End Sub
'關(guān)閉Excel
Sub CloseExcel()
On Error Resume Next
MyXL.Application.DisplayAlerts = False
'MyXL.Application.Save
MyXL.Application.Quit
' Set MyXL = Nothing '釋放對該應(yīng)用程序
End Sub
--------------------------------------------------------------------------這是全部。請檢查,謝謝。如果仍有問題,我擬明日去公司當(dāng)面咨詢??煞袼叫烹娫捖?lián)系。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 (不貴!點擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容