Как редактировать панель формул в макросе с переменными входами? - PullRequest
0 голосов
/ 16 января 2020

В настоящее время я работаю над макросом, которому нужно скопировать функцию INDEX из ячейки, которая имеет различную информацию, и запустить ее. Например. функция может быть либо "= INDEKSI (voy! A1: E4; 1; 0)", либо "= INDEKSI (kto! A1: E4; 1; 0)". Но когда я запускаю этот макрос, он использует только один из этих двух. Вот код:

    Range("N1").Select
    Selection.Copy
    Range("A3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A3:E3").Select
    Application.CutCopyMode = False
    Selection.FormulaArray = "=INDEX(kto!R[-2]C:R[1]C[4],1,0)"
    Selection.AutoFill Destination:=Range("A3:E14"), Type:=xlFillDefault
    Range("A3:E14").Select
End Sub

Есть ли способ исправить эту строку:

Selection.FormulaArray = "=INDEX(kto!R[-2]C:R[1]C[4],1,0)"

Редактировать:

Эта точка макроса получить информацию об автомобиле из другой вкладки. Функция INDEX варьируется в зависимости от того, что пользователь выбирает из выпадающего меню, например: "= IFS (A1 =" voy ";" = INDEKSI (voy! A1: E4; 1; 0) "; A1 =" kto " ; "= INDEKSI (! кто- А1: Е4; 1; 0)")». Эта функция «IFS» находится в N1. Затем нужно скопировать только значения из этой ячейки, вставить их, выбрать 5 ячеек (A3-E3), щелкнуть панель формул и нажать клавиши CTRL + SHIFT + ENTER.

Я действительно начинающий с ними, и я не уверен, может ли это вообще сработать.

1 Ответ

0 голосов
/ 17 января 2020

Вы можете использовать «If» в vba следующим образом:

If range("A1").value = "voy" then
Selection.FormulaArray = "=INDEX(voy!R[-2]C:R[1]C[4],1,0)"
else
Selection.FormulaArray = "=INDEX(kto!R[-2]C:R[1]C[4],1,0)"
end if

Пожалуйста, прочитайте также ссылки на комментарии, опубликованные в комментариях Foxfire и Burns And Burns & Peh, так как это спасет вас от много будущих вопросов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...