此时有两个问题,但我要处理的第一个问题是我无法使粘贴功能起作用。当我浏览代码时,特定的单元格被突出显示以进行复制(单元格边框是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,表示没有设置对象。不知道为什么我会用一种执行形式而不是另一种形式获得错误?通过类似的看法或许我应该使用价值而不是复制?谢谢你的帮助。
答案 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