[英]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.