PasteSpecial不粘贴,但代码没有错误

时间:2017-03-13 18:46:40

标签: excel vba excel-vba

此时有两个问题,但我要处理的第一个问题是我无法使粘贴功能起作用。当我浏览代码时,特定的单元格被突出显示以进行复制(单元格边框是b& w闪烁),并且现在突出显示它们最终的单元格,但没有任何粘贴。

Sub OtherTask()
Dim DRng As Range

ActiveSheet.Range("g2:ah2").find(Date).Select
ActiveCell.Resize(5).Offset(5).Select
Selection.AutoFilter field:=1, Criteria1:="1", Operator:=xlFilterValues

Set DRng = ThisWorkbook.ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
DRng.Copy
ActiveSheet.Range("r12").PasteSpecial xlPasteAll

    If ActiveSheet.AutoFilterMode = "True" Then
        ActiveSheet.AutoFilterMode = "False"
    End If

End Sub

我应该提出第二个问题。当我从宏按钮执行它时,它按照上面的描述执行,但当我在编辑器中并按下播放按钮时,我得到错误91,表示没有设置对象。不知道为什么我会用一种执行形式而不是另一种形式获得错误?通过类似的看法或许我应该使用价值而不是复制?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我不得不对你的代码做一些假设,因为有些事情并不清楚。假设应该很容易看到,并根据您的需要进行改变。

Sub OtherTask()

Dim ws as Worksheet
Dim DRng As Range

Set ws = Worksheets("mySheet")

With ws

    Dim rFound as Range 
    Set rFound = .Range("g2:ah2").find(Date)

    rFound.Resize(5).Offset(5).AutoFilter field:=1, Criteria1:="1", Operator:=xlFilterValues

    'declare this range explicitly, whatever it is
    Set DRng = .Range("A1:B5000").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
    DRng.Copy .range("R12") 'since you paste everything just do straight from copy method

    If .AutoFilterMode = "True" Then .AutoFilterMode = "False"

End With

End Sub