从VBA中的范围选择数据

时间:2019-01-31 08:57:29

标签: excel vba matrix excel-formula

首先感谢您的宝贵时间。我有一个Excel文件,其矩阵类似于此:

Matrix

我在VBA中有一个功能,对于给定的日期c,它选择前一个日期和后一个日期。那是函数:

Function Dates(ByVal date, matrix) As Double
If TypeName(matrix) = "Range" Then matrix = matrix
nCols = UBound(matrix, 2)

If date > matrix(1, nCols) Then date = matrix(1, nCols)
If date < matrix(1, 1) Then date = matrix(1, 1)

date1 = 1
While date > matrix(1, date1) And date1 <= nCols
    date1 = date1 + 1
Wend
 date1 = date1 - 1

If date1 = 1 Then date1 = 2
If date1 >= nCols Then date1 = nCols - 1
date2 = date1 + 1
End Function

我认为是正确的。起息日是将用于获取前一个日期和该日期的后一个日期的日期。矩阵是图片的矩阵,但是我需要的是,当选择上一个日期和后一个日期(date1和date2)时,每个日期的值都需要我做一些操作。像这样: 对于日期日期= 26/9/2016,前一个日期(date1)为29/07/2016,后一个日期(date2)为29/10/2016。我想要获得的是:

29/07/2016       29/07/2016
 15,58%            15,58%
 8,21%              8,21%
 5,65%              5,65%
   .                  .
   .                  .
   .                  .
 1,39%              1,46%

然后,能够遍历这些列以执行插值以获得日期值。 有可能做到吗?如果您能帮助我,我将不胜感激 非常感谢您抽出宝贵的时间阅读并尝试提供帮助。

0 个答案:

没有答案