Я пытаюсь создать функцию, чтобы получить номер столбца ячейки на основе вставленной строки. Если в первой строке найдено два совпадения, я бы хотел вернуть последнее совпадение. Например, «TotalSalary Jan» и «TotalSalary Feb». Когда «TotalSalary» вставлен как параметр, я получу номер столбца для «TotalSalary Feb». Мой код:Получите номер столбца соответствующей строки в первой строке. Excel VBA
Private Function GetColumnNumber(name As String) As Integer
Dim res As Object, ret As Integer
Set res = Sheets("Unified").Cells(1, 1).EntireRow.Find(What:=name, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
If Not res Is Nothing Then
ret = res.Column
Do
Set res = .FindNext(res)
ret = res.Column
Loop While Not res Is Nothing And res.Column <> ret
GetColumnNumber = ret
End If
End Function
К сожалению, код не работает должным образом. res объект не смог найти строку для номера столбца.
Это работает в целом, но пример, такой как TotalSalary Feb и TotalSalary March, по-прежнему выдает TotalSalary Feb. Я постараюсь посмотреть, что я могу сделать. * Изменить: теперь это работает. Просто нужно изменить intPrevious для intCurrent на последних трех строках. Хороший ответ btw! –