Есть несколько способов сделать это. Из cleanest one:
Для самого грязного один:
- положить формулу в Excel и перевести ее встрока. Затем объедините строку и измените строку, содержащую переменные. Это то, что можно использовать. Выберите ячейку с формулой и запустите ее:
Public Sub PrintMeUsefulFormula()
Dim selectedFormula As String
Dim parenthesis As String
parenthesis = """"
selectedFormula = Selection.Formula
selectedFormula = Replace(selectedFormula, """", """""")
selectedFormula = parenthesis & selectedFormula & parenthesis
Debug.Print selectedFormula
End Sub
Затем возьмите напечатанную строку в ближайшем окне и отошлите ее к ячейке следующим образом:
Worksheets(1).Range("A5").Formula = printedString
Если строка выглядит следующим образом: "=INDEX(A1:J5,MATCH(1,E1:E5),MATCH(3,A3:J3))"
и вам нужно изменить 3
второго совпадения на переменную a
, то что-то вроде этого работает:
ws.Range("A5").Formula = "=INDEX(A1:J5,MATCH(1,E1:E5),MATCH(" & a & ",A3:J3))"