首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel 2010 VBA运行时1004‘PasteSpecial类方法间歇性失败?

Excel 2010 VBA运行时1004‘PasteSpecial类方法间歇性失败?
EN

Stack Overflow用户
提问于 2015-07-27 09:36:55
回答 1查看 329关注 0票数 0

下面的代码部分大部分时间都能工作,但偶尔也会引发错误

loc.PasteSpecial xlValues

使用

类的运行时1004‘PasteSpecial方法失败

我也不能让它有规律的错误,所以妨碍我找出原因。在执行代码时不会发生错误。

这种复制和粘贴特殊的方法是在宏中使用几次。

这个问题的其他答案似乎是不同的用例,所以我很难在代码中找到问题。

代码语言:javascript
运行
复制
'extracts the cfc data out to its own table if its there.
If Not IsError(Application.Match("CFC", rng1, 0)) Then
wb2.Sheets("Import").Activate
'reset filter to show all data
If (ActiveSheet.AutoFilterMode And ActiveSheet.FilterMode) Or ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
If ActiveSheet.AutoFilterMode = False Then ActiveSheet.Range("A1:BK1").AutoFilter
ActiveSheet.Range("A1:BK1").AutoFilter Field:=1, 
'filters data based on criteria
Criteria1:=Array("*criteria1*"), Operator:=xlFilterValues
ActiveSheet.Range("A1:BK1").AutoFilter Field:=5, Criteria1:=Array("*CFC*"), Operator:=xlFilterValues
'Copys the rows that are visable.
Range("A2:BK" & ActiveSheet.UsedRange.Rows.Count + 1) _
    .Cells.SpecialCells(xlCellTypeVisible).Rows.Copy


wb2.Sheets("CFC").Select
'reset filter to show all data
If (ActiveSheet.AutoFilterMode And ActiveSheet.FilterMode) Or ActiveSheet.FilterMode Then
 ActiveSheet.ShowAllData
End If

With Range("a:a") 'find the next available row on sheet data using column A
Set loc = .Find(What:="", LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)
End With
outputrow = loc.Row 'sets the output row
loc.PasteSpecial xlValues
loc.PasteSpecial xlFormats

End If

基本功能是。

  • 基于主数据表准则的数据自动过滤
  • 复制剩余的可行行
  • 对目标表的重置筛选
  • 查找表底部的空行
  • 将复制的行粘贴到找到的位置。

我已经尝试了一段时间了,所以任何帮助都会非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-27 12:04:49

仅在粘贴范围之前立即复制范围(使用变量存储要复制的范围)。-罗里

正如罗里所说的。它没有将副本放在引起问题的粘贴之前。

复制代码被更改为使用工作表引用变量,并将其放置在粘贴之前,现在宏100%按预期工作。:)

代码语言:javascript
运行
复制
    outputrow = loc.Row 'sets the output row
sh1.Range("A2:BK" & sh1.UsedRange.Rows.Count + 1) _
    .Cells.SpecialCells(xlCellTypeVisible).Rows.Copy
loc.PasteSpecial xlValues
loc.PasteSpecial xlFormats
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31649661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档