Мне трудно понять, как передать динамический диапазон в формулу.
Обычно у меня будет сценарий, в котором я знаю, в каком столбце будет находиться мой диапазон (пример ниже), где LR - количество строк в моем диапазоне.
Range("A1:A" & LR).FormulaR1C1 = ....some formula here
Проблема начинается, когда мне нужно динамически создать диапазон, используя (в моем случае) имя заголовка столбца. Я могу найти столбец по имени заголовка, получить номер столбца, преобразовать его в букву, но ни одно из пробованных решений не сработало.
Это то, что я использую, чтобы получить номер столбца:
Function getColumn(searchText As String, wsname As String) As Integer
Set aCell = Sheets(wsname).Rows(1).Find(what:=searchText, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If aCell Is Nothing Then
MsgBox ("Column was not found. Check spelling")
Exit Function
Else
getColumn = aCell.Column
End If
End Function
Этот код я использую для преобразования его в букву:
Function Col_Letter(lngCol As Long) As String
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
Col_Letter = vArr(0)
End Function
Теперь, чтобы заполнить формулу в диапазоне, я попробовал что-то подобное, но, к сожалению, не повезло:
colLetter = Col_Letter(manuallyAdjustedNumber)
Range(colLetter & "2:" & colLetter & LR).FormulaR1C1 = "=EXACT([RC-1],[" & harnessDrawingNumber & " - " & manuallyAdjustedNumber & "])"
Я буду признателен за любую помощь! Спасибо!