以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- vba字典在金字塔中如何表示 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=49042) |
-- 作者:duolaijin668 -- 发布时间:2013/2/28 16:09:29 -- vba字典在金字塔中如何表示 问题: 在郑州期货市场,将商品名称左边两位存入数组MC(), 希望:把数组MC()里记录装入字典,过滤掉重复的记录。 但 加入数据时提示错误。
期望得到帮助和指导,谢谢。
,,,, Set d=CreateObject("Scripting.Dictionary") \'将数组MC()装入字典,滤掉重复记录
下边为测试时源代码:
Sub t_lx() \'在郑州期货市场,将商品名称左边两位存入数组MC() Set d=CreateObject("Scripting.Dictionary") \'将数组MC()装入字典,滤掉重复记录 |
-- 作者:guotx2010 -- 发布时间:2013/2/28 16:30:05 -- 字典是有键值对的,就是说有两列数据,你存入的时候,只有一个值,当然出错了。 |
-- 作者:duolaijin668 -- 发布时间:2013/3/1 10:29:11 -- 以下是引用guotx2010在2013-2-28 16:30:05的发言:
字典是有键值对的,就是说有两列数据,你存入的时候,只有一个值,当然出错了。 redim mc(Count-1) \'名称 mc(i)=Left(Report3.stockname,4)
d.Add mc(qq),dm(qq) 还是提示错误:
编辑器错误“457”,由于控件无法看到、尚未启用,或其他类型不接受焦点,因此无法将焦点移至该控件。
请老师再赐教。
另外,测试了论坛中“找主力合约”的例子,在本机上运行正常,里边也应用到“字典”,因个人水平较低,看不出例子为啥就能运行。
|
-- 作者:guotx2010 -- 发布时间:2013/3/1 11:58:36 -- \'\'\'\'\'\'这是我用着的代码 Set dominantContract=CreateObject("Scripting.Dictionary") \'枚举合约,将连续合约的代码和对应市场代码分别作为键和值存入字典容器,供后续操作调用 Sub GetLxCode() Dim marketName dominantContract.RemoveAll marketName=Array("SQ","DQ","ZQ","ZJ") prefixStockNameOld="" c" contractVol=0 For j=0 To UBound(marketName) n=marketData.GetReportCount(marketName(j)) For i=0 To n-1 Set reportData=marketdata.GetReportDataByIndex(marketName(j),i) prefixStockNameCur=left(reportData.StockName,2) suffixStockNameCur=right(reportData.StockName,2) If suffixStockNameCur>="00" And suffixStockNameCur<"99" And reportData.Volume>0 Then \'If suffixStockNameCur="00" And reportData.Volume>0 Then If prefixStockNameCur<>prefixStockNameOld Then If contractLabel<>"" Then dominantContract.Add contractLabel,contractMarket End If prefixStockNameOld=prefixStockNameCur contractLabel=reportData.Label contractMarket=marketName(j) contractVol=reportData.Volume ElseIf reportData.Volume>contractVol then contractLabel=reportData.Label contractVol=reportData.Volume End If End If Next Next dominantContract.Add contractLabel,contractMarket End sub |
-- 作者:duolaijin668 -- 发布时间:2013/3/2 14:12:38 -- 请教两句代码意思 prefixStockNameOld="" 希望老师能把每一条代码给给注释,便于学习。 另外:dominantContract.Add contractLabel,contractMarket 如果想把字典中已经装入的记录逐条显示出来,应该怎么写。 总感觉金字塔里字典的用法与VBA 不太一样,恳请指点。 谢谢。 |
-- 作者:admin -- 发布时间:2013/3/3 0:43:40 -- 论坛的问题,部分VBS代码无法正常显示,请参考这里 http://www.weistock.com/bbs/dispbbs.asp?BoardID=5&ID=4977&skin=0 |
-- 作者:duolaijin668 -- 发布时间:2013/3/3 15:16:14 -- 谢谢 经认真研究列子,基本得到领悟。谢谢。 |