vba字典在金字塔中如何表示 [金字塔]
- 咨詢內(nèi)容:
問(wèn)題:
在鄭州期貨市場(chǎng),將商品名稱左邊兩位存入數(shù)組MC(),
通過(guò)輸出,驗(yàn)證MC()確實(shí)有數(shù)據(jù)希望:把數(shù)組MC()里記錄裝入字典,過(guò)濾掉重復(fù)的記錄。
但 加入數(shù)據(jù)時(shí)提示錯(cuò)誤。
期望得到幫助和指導(dǎo),謝謝。
,,,,
Set d=CreateObject("Scripting.Dictionary") '將數(shù)組MC()裝入字典,濾掉重復(fù)記錄
for qq=0 to ubound(mc)
d.Add mc(qq) '加入數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤
next
application.MsgOut d.count
End Sub下邊為測(cè)試時(shí)源代碼:
Sub t_lx() '在鄭州期貨市場(chǎng),將商品名稱左邊兩位存入數(shù)組MC()
dim mc()
dim d
Count = MarketData.GetReportCount("zq")
redim mc (Count-1)
For i = 0 To Count-1
set Report3 = MarketData.GetReportDataByIndex("zq",i)
mc(i)=Left(Report3.stockname,2)
Next
for nn= 0 To i-1
application.MsgOut mc(nn) '通過(guò)輸出,驗(yàn)證MC()確實(shí)有數(shù)據(jù)
NextSet d=CreateObject("Scripting.Dictionary") '將數(shù)組MC()裝入字典,濾掉重復(fù)記錄
for qq=0 to ubound(mc)
d.Add mc(qq) '加入數(shù)據(jù)時(shí)出現(xiàn)錯(cuò)誤
next
application.MsgOut d.count
End Sub - 金字塔客服: 字典是有鍵值對(duì)的,就是說(shuō)有兩列數(shù)據(jù),你存入的時(shí)候,只有一個(gè)值,當(dāng)然出錯(cuò)了。
- 用戶回復(fù): 以下是引用guotx2010在2013-2-28 16:30:05的發(fā)言:
字典是有鍵值對(duì)的,就是說(shuō)有兩列數(shù)據(jù),你存入的時(shí)候,只有一個(gè)值,當(dāng)然出錯(cuò)了。redim mc(Count-1) '名稱
redim dm(Count-1) ’代碼mc(i)=Left(Report3.stockname,4)
dm(i)=Right(Report3.Label,2)d.Add mc(qq),dm(qq) 還是提示錯(cuò)誤:
編輯器錯(cuò)誤“457”,由于控件無(wú)法看到、尚未啟用,或其他類型不接受焦點(diǎn),因此無(wú)法將焦點(diǎn)移至該控件。
請(qǐng)老師再賜教。
另外,測(cè)試了論壇中“找主力合約”的例子,在本機(jī)上運(yùn)行正常,里邊也應(yīng)用到“字典”,因個(gè)人水平較低,看不出例子為啥就能運(yùn)行。
- 網(wǎng)友回復(fù): ''''''這是我用著的代碼
Set dominantContract=CreateObject("Scripting.Dictionary")
'枚舉合約,將連續(xù)合約的代碼和對(duì)應(yīng)市場(chǎng)代碼分別作為鍵和值存入字典容器,供后續(xù)操作調(diào)用
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 - 網(wǎng)友回復(fù):
prefixStockNameOld=""
c"
感覺(jué)這兩句很神秘,在程序中是啥意思?尤其是Old。希望老師能把每一條代碼給給注釋,便于學(xué)習(xí)。
另外:dominantContract.Add contractLabel,contractMarket
如果想把字典中已經(jīng)裝入的記錄逐條顯示出來(lái),應(yīng)該怎么寫。
總感覺(jué)金字塔里字典的用法與VBA 不太一樣,懇請(qǐng)指點(diǎn)。
謝謝。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒(méi)有相關(guān)內(nèi)容