VBA В поисках последней строки - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь скопировать формулу до последней строки. У меня есть код для этого, но он не будет работать.

Мой код для поиска последней строки:

lRow = ws.Range("G" & ws.Rows.Count).End(xlUp).Row

Остальная часть моего кода выглядит следующим образом:

Sub Inventory()
Dim lRow As Integer

lRow = ws.Range("G" & ws.Rows.Count).End(xlUp).Row

'Inventory Macro
Range("G2").Select
' Selects cell G2
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-5]-RC[-2]"
' Calculates Inventory for the first month by subtracting Production Units from Demand
Range("G3").Select
' Selects cell G3
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-5]-RC[-2]+R[-1]C"
' Calculates Inventory for the rest of the months by subtracting Production Units from Demand plus the previous month's Inventory
Range("G3").Select
Selection.AutoFill Destination:=Range("G3:G" & lRow)
Range("G3:G" & lRow).Select
End Sub

1 Ответ

1 голос
/ 10 февраля 2020

Ваша проблема, вероятно, связана со столбцом, в котором вы определяете последнюю строку. Вот еще одна версия вашего кода, которая избегает выбора чего-либо.

Sub Inventory2()
    'Inventory Macro
    ' Calculates Inventory for the rest of the months by subtracting
    ' Production Units from Demand plus the previous month's Inventory

    Dim Ws As Worksheet
    Dim lRow As Long

    Set Ws = ActiveSheet            ' better: name the sheet: Worksheets("Sheet1")
    With Ws
        lRow = .Cells(.Rows.Count, "A").End(xlUp).Row   ' this can't be column G
        .Cells(2, "G").FormulaR1C1 = "=RC[-5]-RC[-2]"
        .Range(.Cells(3, "G"), .Cells(lRow, "G")).FormulaR1C1 = "=RC[-5]-RC[-2]+R[-1]C"
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...