【发布时间】:2020-01-21 22:06:05
【问题描述】:
我有一个数据集,作为估算工时程序的输出,我正在用 VBA 编写以复制列中的值并将它们粘贴到工作簿,我在输入框中定义了他的名字。问题是估计小时输出表上的列中的行数发生了变化,现在我的 VBA 中有硬编码的单元格。我想要做的是创建从单元格 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
如果还需要什么,请告诉我, 提前致谢。
【问题讨论】:
-
您好。这似乎很像这个问题:stackoverflow.com/questions/44242393/…