Умножение последней строки с одного листа и размещение на другом листе - PullRequest
0 голосов
/ 02 марта 2020

Попытка умножить последние 3 строки столбца «production_units» на «production_cost» друг на друга из моего листа с именем «DATA» и поместить их в лист с именем «Report» под заголовком столбца «Production Cost». Я пытался, но безрезультатно. Спасибо.

Мои таблицы выглядят так:

enter image description here

enter image description here

Мой код:

Sheets("DATA").Activate
' Use this lRow now since the previous one require you to be in a With   loop
Range(Cells(lRow - 2, 1), Cells(lRow, 1)).Copy

With Sheets("Report")
.Activate
' Pastes the last 3 cells of Column A into the Month column
.Range("B9").PasteSpecial Paste:=xlPasteAll
.Range("B8").Formula = "Month"
.Range("C8").Formula = "Production Cost"
' Calculates the Production cost
.Range(.Cells(lRow - 3, 2), .Cells(lRow, 2)).Copy
.Range("C9").AutoFill Destination:=Range("C9:C11")
' Calculates the Inventory cost
.Range("C14").Select
.Range("D8").Formula = "Inventory Cost"
.Range("E8").Formula = "Total Cost"
.Range("B12").Formula = "Total"
End With
End Sub

1 Ответ

0 голосов
/ 02 марта 2020

Вот рабочая версия вашего кода. Вы можете посмотреть синтаксис.

    Dim WsData As Worksheet
Dim WsReport As Worksheet
Dim Rl As Long                          ' last row
Dim Rng As Range

Set WsData = Worksheets("Data")
Set WsReport = Worksheets("Report")

With WsData
    ' look for the last used cell in column B
    Rl = .Cells(.Rows.Count, "A").End(xlUp).Row
    Set Rng = .Range(.Cells(Rl - 2, 1), .Cells(Rl, 1))
    ' Pastes the last 3 cells of Column A into the Month column
    Rng.Copy Destination:=WsReport.Cells(9, "B")
End With

With WsReport
    .Cells(8, "B").Formula = "Month"
    .Cells(8, "C").Formula = "Production Cost"
    .Cells(8, "D").Formula = "Month"
    .Cells(8, "E").Formula = "Inventory Cost"
    .Cells(8, "F").Formula = "Total cost"
    .Cells(12, "B").Formula = "Total"

    ' Calculates the Production cost
    '   there is no calculation unless there are formulas being copied
    Rng.Offset(0, 1).Copy Destination:=.Cells(9, "C")

    ' Calculates the Inventory cost
    '   there is no calculation
End With

Конечно, все вычисления отсутствуют, поскольку они не включены в ваш вопрос. Я надеюсь, что вы сможете добавить их к предоставленному мной коду.

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