Как поместить переменные в формулу в vba

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

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 columns» он ничего не найдет и цикл не завершится.

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

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
43
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Может быть, что-то вроде приведенного ниже кода. Он находит последнюю строку (используйте 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
Ответ принят как подходящий

Как насчет:

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

хорошо, я очень стараюсь прикусить язык. Все, что я скажу, это то, что я пробовал это с выбранным Sheet2, и код не работал успешно после того, как я разобрал ошибку Variable not defined, и мой Lastrow1 всегда был 1048576, потому что он начинается в строке 1048576 и смотрит вниз оттуда. Пробежал :)

Darren Bartrup-Cook 01.05.2018 16:01

В моем случае это решено, спасибо, я просто не знал, как правильно указать переменную include в части формулы

Mavje 01.05.2018 17:52

Другие вопросы по теме