Формула Excel в VBA - PullRequest
       0

Формула Excel в VBA

0 голосов
/ 07 февраля 2019

Я пытаюсь понять, почему функциональная формула работает в Excel и не может быть просто добавлена ​​в VBA

Sub btn_Get_Type_Click()

    Dim lr As Long

    With ThisWorkbook.Worksheets("Sheet1")
        lr = .Cells(Rows.Count, 1).End(xlUp).Row
        .Range("E2:E" & lr) = "=IF(D2>0,IF(ISNUMBER(MATCH(CORPORAT!A1:E30,5)),'CORPORATE','FIRM'),'HUMAN')"

    End With
End Sub

Есть идеи?или я совершенно не прав?

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Какую формулу вы хотите создать?

Сейчас ответ таков: ваша функция MATCH не будет работать, поскольку вы не предоставляете критерии поиска, а также 5 не является допустимым выбором.-1 (Меньше), 0' (Exact) or 1` (больше чем).

0 голосов
/ 07 февраля 2019

Я нашел решение, большое спасибо за совет.Первый был неправильным .Rows.Count без точки, следующий MATCH без критериев и @JvdV tip и последний несовпадение типов, ", и;"должен быть только один тип я прошу.

эта формула работы:

    Sub btn_Get_Type_Click()

    Dim lr As Long

    With ThisWorkbook.Worksheets("Sheet1")
        lr = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Range("E2:E" & lr) = "=IF(D2>0,IF(ISNUMBER(MATCH(D2,CORPORAT!$E$1:$E$30,0)),""K"",""PO""),""FO"")"


    End With
End Sub
0 голосов
/ 07 февраля 2019

Я думаю, что у вас есть проблема с кавычками.Попробуйте это:

Sub btn_Get_Type_Click()

    Dim lr As Long

    With ThisWorkbook.Worksheets("Sheet1")
        lr = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Range("E2:E" & lr) = .Range("E2:E" & lr) = "=IF(D2>0,IF(ISNUMBER(MATCH(corporat!A1:E30,5)),""CORPORATE"",""FIRM""),""HUMAN"")"


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