版主:我用两个按钮向自选板块中增加品种和减少品种,但必须按两次才能将品种增加到表中或从表中清除,不知什么原因,请帮忙解答谢谢!
Sub Look_CommandButton7_Click()
Set Grid = Technic.GetGridByName("Main")
Market=Grid.Market
Code=Grid.StockLabe
Set Table = Technic.GetGridByName("Main3").GetTable() '窗格Main3为表
Call Table.SwitchBlock("监控",1) '“监控"切换动态牌自选分类下的自定义板块
Set block = CreateObject("stock.block")
block.Open "监控", 1
block.AddStock Market,Code
block.tosave "自选","监控"
Table.Refurbish
End Sub
Sub Look_CommandButton8_Click()
Set Grid = Technic.GetGridByName("Main")
Market=Grid.Market
Code=Grid.StockLabel
Set Table = Technic.GetGridByName("Main3").GetTable()
call Table.SwitchBlock("监控",1)
Set block = CreateObject("stock.block")
block.Open "监控", 1
For i = 0 To block.Count - 1
IF block.GetStockMarket(i)=Market AND block.GetStockCode(i)=Code THEN
block.removeat (i)
END IF
Next
block.tosave "自选","监控"
Table.Refurbish
End Sub
Call Table.SwitchBlock("监控",1) 加到代码末行,再次切换到监控板块就可以了。
谢谢版主,问题解决!
版主:我需要将自选板块中的所有品种全部清除,但怎么都需要按几次按钮才能清除完毕,一次只能清除一部分,请教怎样才能全部清除?代码如下:
Sub Look_CommandButton8_Click()
Set Grid = Technic.GetGridByName("Main")
Market=Grid.Market
Code=Grid.StockLabel
Set Table = Technic.GetGridByName("Main3").GetTable()
call Table.SwitchBlock("监控",1)
Set block = CreateObject("stock.block")
block.Open "监控", 1
For i = 0 To block.Count - 1
block.removeat (i)
Next
block.tosave "自选","监控"
call Table.SwitchBlock("监控",1)
End Sub
For i = 0 To block.Count - 1
这一行倒过来写,从大到小,如:
iCount=block.count-1
For i=icount to 0 step -1
点赞!不明白为什么从后往前删除可以,从前往后删除需要多次才能删除完毕?
从前往后删除,删除之后,block.count变了,导致出问题,逆序就不会。