我有一个循环,它在工作簿a中取一个动态范围,并将其粘贴到工作簿B的单元格D4中。然后它再次循环并在工作簿C单元格D4中粘贴另一个动态范围。但是这两个范围可能大小不同。
我得到一个“范围类的pastespecial方法失败”
Sub CopyPaste()
Dim AX As Workbook
Dim WB As Workbook
Dim rng As Range
Dim autofiltrng As Range
Dim xlApp As Excel.Application
Set xlApp = CreateObject("Excel.Application")
Set AX = Workbooks.Open("C:\Desktop\AXFile.xlsx")
Set WB = Workbooks.Open("C:\Desktop\ClientA.xlsx")
'filtering AX file to show 1 specific client
With Axys
AX.Sheets(1).Range("A2").AutoFilter Field:=4, Criteria1:="ClientA"
End With
With ActiveSheet.AutoFilter.Range
On Error Resume Next
Set autofiltrng = .Offset(1, 0).Resize(.Rows.Count - 1,_
1).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
Set rng = AX.Sheets(1).AutoFilter.Range
'copy/paste data for specific client in their own XLS
rng.Offset(1, 5).Resize(rng.Rows.Count - 5).Copy
WB.Sheets(1).Range("a14").PasteSpecial xlPasteValues
Application.CutCopyMode = False
WB.Save
WB.Close
AX.Close
End Sub
我从上面的代码中去掉了循环,但是每次我通过50+客户端循环创建50+EXCEL文件时,我都会在过程中的某个随机点得到一个特殊的错误。从来不是同一个地方。
建议您显式地捕获您感兴趣的信息,而不是使用筛选器和复制/粘贴。然后将该信息直接加载到目标中。
不需要创建一个从未使用过的xlApp,也不需要处理它(设置xlApp=nothing)。
我写了下面的代码,并不断地看到。我试图克服这个问题,但似乎没有任何效果。我正试图从一个工作簿复制整个工作表,并将其粘贴到另一个工作簿中:
我需要从一个工作簿复制棕褐色单元格并粘贴到另一个工作簿中。并且只需要在Excel中获取特定的单元格值。我实现了这一点,但只能粘贴到同一工作簿中的另一个工作表中。你能帮助我在粘贴数据到另一个工作簿上的一个特定的工作表,也应该粘贴的值在第二行,(即从第二行开始),因为第一行有标题在它。 源表标题: 项目阶段状态st Dt结束Dt预资源备注备注 Dest表标题: 现有代码:
试图从当前工作簿“Create Report.xlsm”中复制工作表名称“Headings Explantions”,该工作簿打开到我要求打开的工作簿中,我得到了下标超出范围的错误
我在工作簿中的工作表上有一个按钮,工作簿中有一个数据透视表,名为“保修模板.xlsm”。我希望该按钮复制从A5开始的第一列数据,并将该列粘贴到另一个名为“QA Matrix Template.xlsm”的工作簿中。我希望复制的数据在列的最后一个空白行结束,我希望粘贴数据的范围也粘贴在从D12开始的第一个空白行上。 我得到下标错误:'1004',我不知道为什么。它与我的&变量有关。如果我设置静态范围
我需要一个宏,它可以根据我选择的单元格从我所在的工作簿中复制整行。我已经可以这样做了,使用以下方法: 但是,我需要它将其(格式化和全部)粘贴到关闭的工作簿的第一个空行(基于B列)。R: \dasboards\wo。xlsm公司
这应该真的很简单,但我一直在拖网论坛和答案数小时来寻找答案,但没有运气,所以我(不情愿地)创造了一个我自己的问题。 我要做的只是简单地创建一个新工作簿,并将另一个工作簿的范围粘贴到该工作簿中。听起来很简单..? 我原来的工作簿,让我们叫Book1。我试图创建一个新的工作簿,Book2,我将把单元格A1:B10的值复制到其中。 以下是我代码的一个版本(从第一册打开开始): 这会给出一个“Range类