Как поместить переменные в формулу в VBA - PullRequest
0 голосов
/ 01 мая 2018

Сценарий выглядит следующим образом:

Sub Macro1()

Lastrow1 = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count,5).End(xlDown).Row

For y = 2 To Lastrow1

If Cells(y, 6) <> "" Then
    Cells(y, 7).Formula = "=Networkdays(E2,F2,$S$2:$S$14)"

Else
    Exit For
End If

Next y

End Sub

Мои проблемы начинаются с формулы здесь; например, я хотел бы выбрать E2, F2 и эти константы «$ S $ 2: $ S $ 14», а затем вернуться к E3, F3 и т. д. до тех пор, пока в столбцах «F» ничего не будет найдено и цикл не закончится.

Есть намеки на это? Возможно, об этом спрашивали довольно много раз, но как только вы начинаете, проблема заключается не только в недостатке знаний, но и в умении задать правильный вопрос.

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Как насчет:

Sub Macro1()

Lastrow1 = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 5).End(xlDown).Row

For y = 2 To Lastrow1
    If Cells(y, 6) <> "" Then
        Cells(y, 7).Formula = "=Networkdays(E" & y & ",F" & y & ",$S$2:$S$14)"
    Else
        Exit For
    End If
Next y

End Sub
0 голосов
/ 01 мая 2018

Возможно что-то вроде приведенного ниже кода Он находит последнюю строку (используйте xlUp вместо xlDown) и помещает формулу между строкой 2 и последней строкой в ​​столбце G.

Public Sub InsertFormula()

    Dim LastRow As Long

    With ThisWorkbook.Worksheets("Sheet1")

        LastRow = .Cells(.Rows.Count, 6).End(xlUp).Row

        'Put the formula in the range G2:G & LastRow
        .Range(.Cells(2, 7), .Cells(LastRow, 7)).Formula = "=Networkdays(E2,F2,$S$2:$S$14)"
    End With

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