簡體   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