正在查找第一个数字列或日期列的列索引



我对VBA编码很陌生,我想在工作表中查找第一个数字/短日期/日期列的列索引。

数据的一个例子是:

id     sex     2015   2016
2       M       1       3
4       F       7       5
3       F       8       9

在这个例子中,答案应该是3。我想把它设置为一个变量,以便以后可以使用这个数字。

这是我迄今为止的代码:

Sub find_value()
Dim c As Range
Dim firstAddress As String
With Worksheets(1).Range("A1:A500") 
Set c = .Find(2015, lookin:=xlValues) 
End Sub

正如您所看到的,这只是一个静态的解决方案。

任何想法都会很棒!非常感谢

非常粗糙,但这里有一个函数可以得到您想要的结果。您可以调用result以备以后使用,也可以根据需要调用函数。这是有目的地分解的,这样您就可以看到find_value是如何定义的。如果你愿意,你可以合并代码。

Sub test()
Dim result As String
result = find_value(2015, 1) 'find year 2015, entry 1

Debug.Print result

End Sub
Function find_value(year As Integer, entry As Integer)
Dim yearVal, entryVal, foundVal As Integer
yearVal = Application.WorksheetFunction.Match(year, Worksheets(1).Range("1:1"), 0)
entryVal = Application.WorksheetFunction.Match(entry, Worksheets(1).Range(Worksheets(1).Cells(1, yearVal), Worksheets(1).Cells(500, yearVal)), 0)
foundVal = Cells(entryVal, yearVal + 1)
find_value = foundVal
End Function

最新更新