因此,我试图从一个WB复制数据,并将其粘贴到前面行底部的另一个WB中。
我每周五都会运行这份报告,在过去的7天里,我每次都会提取一天的数据。消息来源WB的名字将在我拉下的每一天中发生变化,看起来如下:3月23日星期四为20170323050000。
世界银行的名称每周都会改变: WK12,WK13,WK14等。
当我再次运行我的报告时,是否有一个不需要每周修改的宏?
更新的
所以,我玩了一会儿,这几乎完全符合我的需要,但我仍然回到最初问题的最后一部分,我能做些什么来改变“视窗(WK13 RIP.xlsm).Activate”到WK14,WK15,WK16等每周我这样做吗?
Sub PackFilterl()
Range("A1").AutoFilter Field:=15, Criteria1:="EACH"
Range("A1").AutoFilter Field:=16, Criteria1:="Total"
Dim rng As Range
Set rng = ActiveSheet.UsedRange
Set rng = rng.Offset(1).Resize(rng.Rows.Count - 1)
rng.Select
rng.Copy
Windows("WK13 RIP.xlsm").Activate
Sheets("AFE Pack Volume").Select
lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row
Range("A" & lMaxRows + 1).Select
ActiveSheet.Paste结束子对象
发布于 2017-03-30 14:18:50
我想这就是你要找的,但有一个警告。您说您滚动到目标工作簿的底部来粘贴复制的范围,但是我不知道底部在哪里,所以我只是将目标设置为A1。您可以为目标范围添加另一行和InputBox()调用,或者编写一些代码来确定底部在哪里。下面的代码还假定目标工作簿尚未打开。
Sub PackFilterl()
Dim WkShtNum As Integer
Dim WkBkName As String
Dim DestinationWorkbook As Excel.Workbook
Dim DestinationWorksheet As Excel.Worksheet
Dim rng As Range
WkBkName = InputBox("Enter the Path of your destination Workbook")
WkShtNum = InputBox("Enter the week number for the destination worksheet")
Range("A1").AutoFilter Field:=15, Criteria1:="EACH"
Range("A1").AutoFilter Field:=16, Criteria1:="Total"
Set rng = ActiveSheet.UsedRange
Set rng = rng.Offset(1).Resize(rng.Rows.Count - 1)
rng.Select
rng.Copy
Set DestinationWorkbook = Workbooks.Open(WkBkName)
Set DestinationWorksheet = DestinationWorkbook.Worksheets("WK" & CStr(WkShtNum))
Set rng = DestinationWorksheet.Range("A1")
rng.PasteSpecial (xlPasteValues)
End Subhttps://stackoverflow.com/questions/43120243
复制相似问题