繁体   English   中英

在VBA中选择单元格范围

[英]select range of cells in VBA

在我的电子表格的 1 行内,有从 1/1/2017 到 31/12/2017(第 2 行)的日期。 第 3 行包含 2017 年每一天的值。

单元格 A1 和 B1 包含应根据其选择第 2 行的日期 - 因此,如果 A1 是 1/1/2017 并且 B1 是 31/3/2017,则从第 2 行和下面的第 3 行(第 2 行是 x,第 3 行是 y 值)。

我考虑过匹配或 if 语句。 有没有人知道我如何在 VBA 中实现这一目标

如果我理解正确的话,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”调用为您提供日期的日期部分,如本页所述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM