将date范围与数组值进行比较
我试图创build一个函数来连接一个单元格的范围,如果他们各自的date是更大或等于(> =)到存储在工作表单元格中的特定date。
在下面的代码中, DatesRange_V
是一个包含date列表的数组,而ThisDate
是包含date的A1。 我希望通过ConcatRange_V
循环,并在date大于ThisDay
时将它们与分隔符连接起来。
Function ConcatRangeIf() As String Dim ConcatRange As Range Dim DatesRange As Range Set ConcatRange = Range("RP_Names") 'A list of names to concat Set DatesRange = Range("RP_Dates") 'A list of dates Dim Result As String Dim Seperator As String Dim FirstCell As Boolean Dim ConcatRange_V() As Variant Dim DatesRange_V() As Variant Dim ThisDate As Variant FirstCell = True Seperator = ", " ConcatRange_V = ConcatRange.Value DatesRange_V = DatesRange.Value ThisDate = Range("a1").Value ' A date on the current sheet Dim i As Integer For i = 1 To UBound(ConcatRange_V) If ConcatRange_V(i, 1) <> "" And DatesRange_V(i, 0) >= ThisDate Then If FirstCell Then Result = ConcatRange_V(i, 1) Else Result = Result & Seperator & ConcatRange_V(i, 1) End If End If FirstCell = False Next ConcatRangeIf = Result End Function
似乎有一个问题,因为我放置的单元=ConcatRangeif()
正在返回#VALUE!
。
如果这是你的代码的副本,那么行:
ConcatRange_V = ConcatR.Value
ConcatR指向一个没有被赋值的variables。 它应该是:
ConcatRange_V = ConcatRange.Value