【发布时间】:2018-04-12 14:41:31
【问题描述】:
我有一组数据(样本):
Maturity Price
17/11/2017 2165
15/12/2017 2165
17/11/2017 2170
15/12/2017 2170
19/01/2018 2170
对于列表中的每个价格,我想创建此价格与列表中所有其他价格的输出(仅在日期相同的情况下)
Function Spreads()
Dim data_range As Range
Dim data As Variant, output_range As Variant
Dim i As Integer, j As Integer, x As Integer
Set data_range = Worksheets("Strategies").Range("A1", "B10")
data = data_range.Value2
For i = LBound(data) + 1 To UBound(data)
For j = LBound(data) + 1 To UBound(data)
If data(i, 1) = data(j, 1) Then
If data(i, 2) < data(j, 2) Then
ReDim Preserve output_range(x, 3)
output_range(x, 1) = data(i, 1)
output_range(x, 2) = data(i, 2)
output_range(x, 3) = data(j, 2)
x = x + 1
End If
End If
Next
Next
PrintArray output_range, ActiveWorkbook.Worksheets("Strategies").[d1]
End Function
Sub PrintArray(data As Variant, Cl As Range)
Cl.Resize(UBound(data, 1), UBound(data, 2)) = data
End Sub
所以我上表的输出是:
17/11/2017 2165 2170
15/12/2017 2165 2170
但是,当我运行它时,什么也没有发生。任何建议将不胜感激?
【问题讨论】:
-
究竟为什么你有
Dictionaty,遍历日期,并将A列(你的日期)作为Key。