繁体   English   中英

如何在VBA中为每个循环获取索引(使用Excel编程)?

[英]How do I get the index in a VBA For Each Loop (programming with Excel)?

我正在使用EXCEL VBA处理一些数据,这是我要制作的:

我想开发一个可以计算出浅绿色区域中的值的函数

在此工作表中,我想创建一个函数“ GetDebutDate”,该函数可以自动计算该行具有值的第一个日期。

例如,在“标记”行中,第一次获取值的时间是08年8月,数字为“ 4”。

我对VBA知之甚少,经过四处搜寻之后,我发现我可以使用For ... Each在范围内循环。 但是,如何获取每个循环中“ v”的索引? 获得该索引后,如何获得第一行中的Date值?

Function Get_Board_Count(range As range)
  For Each v In range
    ....
  Next
  Get_Board_Count = ....
End Function
Function Get_Board_Count(range As range)
    dim i as integer
    i = 1

    for each v in Range
       ...
       i = i + 1
    next


  Get_Board_Count = i 'Index of the item where cell is found.
End Function

在使用For Each ,最好不要对获取对象的顺序进行任何假设:在后续的Excel版本中,甚至在会话之间,它可能都会更改。

但是, v是对范围本身的引用,因此您可以通过它访问Excel.Range的属性和方法。 使用v.Column提取特定v所引用的列; 这将是包含相应日期的列。

您也可以使用仅Excel的解决方案,该解决方案不需要VBA编程。 看一下这个公式:

=INDIRECT(ADDRESS(1,MATCH(TRUE,INDEX(A2:E2>0,0),0)))

MATCH(TRUE,INDEX(A2:E2>0,0),0)查找大于0且不为null的第一个值,并返回该值的当前列索引。 公式的其余部分引用带有日期的行,以获取每个引用的所需日期。 就我而言是第一行...

暂无
暂无

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

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