选择范围在VBA

选择范围在VBA

问题描述:

中的单元格在我的电子表格的1行内,有2017年1月1日至2017年12月31日(第2行)的日期。 第3行包含2017年每一天的价值。选择范围在VBA

单元格A1和B1包含日期,根据该日期应选择第2行 - 所以如果A1为2017/1/1和2017年3月31日,只有这些月份应显示在下面第2行和第3行绘制的图表中(第2行是x,第3行是y值)。

我想过要么匹配要么是如果语句。是否有人有一个想法,我怎么能在VBA中实现这一点

+0

没有人知道吗? –

+0

欢迎来到堆栈溢出,请参阅[帮助]了解哪些类型的问题在这里提出并提供[mcve] –

如果我正确地理解你,A1是开始日,B1是你想选择范围的结束日,第2行是所有2017年从A2开始,一直持续到年底。第3行是与每一天排2。然后关联来获得你想要,你可以使用以下的范围内的值:

Dim startIdx As Integer, endIdx As Integer 
Set valRng = ActiveSheet.Range("A2:NB2") 

startIdx = Application.Match(CLng(Cells(1, 1).Value), valRng, 0) 
endIdx = Application.Match(CLng(Cells(1, 2).Value), valRng, 0) 

Set rngSel = ActiveSheet.Range(Cells(2, 1).Offset(0, startIdx-1), Cells(2, 1).Offset(0, endIdx-1)) 
MsgBox ("rngSel=" & rngSel.Cells.Address) 

,使价值转化工作,在匹配语句的活性成分是, 'CLng'电话会根据此page获取日期的当天部分。

+0

是否有可能你解释了你做了什么? –

+0

打印范围为日期范围(第2行)。您应该能够通过将单元格(2,1)更改为单元格(3,1)来获得第3行的范围。 – Amorpheuses

+0

我用一个解释更新了它。 – Amorpheuses