У меня есть набор данных, который в качестве вывода программы оценки часов я пишу в VBA, чтобы скопировать значения в столбце и вставить их в рабочую книгу, чье имя я определяю в поле ввода. Проблема заключается в количестве строк в столбце оценки изменений выходного листа часов, и сейчас мой VBA содержит жестко запрограммированные ячейки. Я хочу создать динамическую c копию столбца, где он начинается в ячейке D13, и скопировать столбец до последнего значения, за исключением того, что он перемещается на 1 ячейку вверх, поскольку последняя строка содержит итоговую строку.
Ниже приведен код, который у меня есть на данный момент
Option Explicit
Sub Copy_Method()
Dim bookIn As String
Dim bookOut As String
Dim X As String
'Take in data to copy from estimating hours program'
bookIn = InputBox("Enter workbook name:", "Workbook name")
'Take in wookbook name to save file to'
X = InputBox("Set work book name:")
Workbooks.Add
'Save new workbook in folder'
ActiveWorkbook.SaveAs Filename:="C:\Users\BradM\Desktop\RET_DATA_ACTUAL\" & X & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
With ActiveWorkbook
'Insert Tooling'
'Copy column (What I want to be dynamic, start copy at cell D13 to last row with data, then move up 1 row to account for the total row)'
Workbooks(bookIn).Worksheets("Production Hours").Range("D13:D45").Copy _
'PasteSpecial to paste values'
Workbooks(X).Worksheets("Sheet1").Range("A1").PasteSpecial Paste:=xlPasteValues
End With
End Sub
Пожалуйста, дайте мне знать, если что-нибудь еще понадобится, Заранее спасибо.