使用VBA的BDS – 在单元格中input过期date以让VBA读入代码

我在Excel工作表中有以下等式:

=BDS("SPX Index","CHAIN_TICKERS","CHAIN_POINTS_OVRD=ALL","CHAIN_STRIKE_PX_OVRD=ALL","CHAIN_EXP_DT_OVRD=201401","CHAIN_PUT_CALL_TYPE_OVRD=c","","cols=1;rows=201") 

然后我在VBA中有下面的代码,这样我可以推一个batten并获得我想要的数据:

 Private Sub CommandButton1_Click() Dim options As String Cells(2, 1).Formula = StringConcat("", "=BDS(", _ Chr(34), "SPX Index", Chr(34), ",", _ Chr(34), "CHAIN_TICKERS", Chr(34), ",", _ Chr(34), "CHAIN_POINTS_OVRD=ALL", Chr(34), ",", _ Chr(34), "CHAIN_STRIKE_PX_OVRD=ALL", Chr(34), ",", _ Chr(34), "CHAIN_EXP_DT_OVRD=201401", Chr(34), ",", _ Chr(34), "CHAIN_PUT_CALL_TYPE_OVRD=c", Chr(34), ",", _ Chr(34), Chr(34), ")") 

这是行之有效的,除了我想弄清楚是否有什么我可以做的这条线: Chr(34), "CHAIN_EXP_DT_OVRD=201401", Chr(34), ",", _ 。 目前,我必须硬编码,每次都要改变如果我想要一些不同的月份数据。 我想知道是否有人可以帮我编写代码,这样我就可以从电子表格的某个单元格中提取date,而不是进入VBA并进行更改。

这个?

 Cells(2, 1).Formula = "=BDS(""SPX Index"",""CHAIN_TICKERS"",""CHAIN_POINTS_OVRD=ALL"",""CHAIN_STRIKE_PX_OVRD=ALL"",""CHAIN_EXP_DT_OVRD="" & $D$2 & """",""CHAIN_PUT_CALL_TYPE_OVRD=c"","""",""cols=1;rows=201"")" 

与此范围(“$ D $ 2”),即单元格(2,4)允许您dynamicinput年份和月份值。