导出到excel时发生的故障 [金字塔]
- 咨询内容:
	
	用论坛软件导出即时数据到excel时: MyXL.Application.activesheet.Range("D" & Cstr(j+1)) = report1.LastHigh 
 MyXL.Application.activesheet.Range("E" & Cstr(j+1)) = report1.LastLow上述语句导出的总是前天的数据 而不是昨天的。请问这是什么问题?谢谢 
-  金字塔客服:
	
	你导出哪个品种的几分钟数据
	
-  用户回复:
	
	导出的是期指当月 上证指数 沪深300,日线数据。lastclose都对,但lasthigh和lastlow 都是前天的,试了很久,都是这样,为什么呢? 
-  网友回复:
	
	再多给出一些代码看看, 你检查检查,有没哪些语句会导致j变化 
-  网友回复:
	
	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 "正在导出:" & 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
 '取得要监控的品种代码
 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 '延迟错误捕获。
 '不带第一个参数调用 Getobject 函数将
 '返回对该应用程序的实例的引用。
 '如果该应用程序不在运行,则会产生错误。
 Set MyXL = GetObject(, "Excel.Application")
 If Err.Number <> 0 Then
 Set MyXL = CreateObject("Excel.Application")
 End if
 '将对象变量设为对要看的文件的引用。
 Set MyXL = GetObject(sFileName)
 
 iPos = InStrRev(sFileName, "\", -1, vbTextCompare)
 sWinName = Mid(sFileName, iPos + 1, Len(sFileName) - iPos - 4)
 
 '设置其 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
 '关闭Excel
 Sub CloseExcel()
 On Error Resume Next
 MyXL.Application.DisplayAlerts = False
 'MyXL.Application.Save
 MyXL.Application.Quit
 ' Set MyXL = Nothing '释放对该应用程序
 End Sub
 --------------------------------------------------------------------------这是全部。请检查,谢谢。如果仍有问题,我拟明日去公司当面咨询。可否私信电话联系。 
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240  进行 有偿 编写!(不贵!点击查看价格!)
                        
相关文章
- 
                        没有相关内容
                       

 
                     会员登录/注册
会员登录/注册