Excel 选择一个变量offset.resize.copy
有人能告诉我下面的代码有什么问题吗Excel 选择一个变量offset.resize.copy,excel,vba,Excel,Vba,有人能告诉我下面的代码有什么问题吗 sub AVERAGE() Set dDate = Worksheets("Formula").Range("A1") Set rcell = Worksheets("Bond Status - Total Stats").Range("B5:NE5") _ .Find(What:=dDate, LookAt:=xlWhole, MatchCase:=False) If rcell Is Nothing Then Ms
sub AVERAGE()
Set dDate = Worksheets("Formula").Range("A1")
Set rcell = Worksheets("Bond Status - Total Stats").Range("B5:NE5") _
.Find(What:=dDate, LookAt:=xlWhole, MatchCase:=False)
If rcell Is Nothing Then
MsgBox "Date " & dDate & " not found in Bond Status - Total Stats"
Else
rcell.Offset(1).Resize(-18, 15).Select.Copy 'this line is not working
Worksheets("Formula").Range("F2:W2").PasteSpecial xlPasteValues
End If
End Sub
我试图做的是从WorksheetsFormula.RangeA1定义的日期开始,将一系列数据复制到左侧和下方的15行。我似乎无法通过考试。
注释的行不起作用。我认为问题在于您试图调用范围的Select方法上的Copy方法。Select返回一个变量,该变量可能不会公开复制方法,即使运行时类型可能是一个范围 在复制之前,实际上不需要选择一个范围,如.Select.Copy 我想改变这一行:
rcell.Offset(1).Resize(-18, 15).Select.Copy
到
除非需要选择该范围。在这种情况下,您可以执行以下操作:
rcell.Offset(1).Resize(-18, 15).Select
Selection.Copy
另一个需要考虑的是,当做a。当您可能想要搜索日期或字符串值时,您正在尝试搜索范围对象的范围。编译器对此没有问题,因为Find方法的What参数需要一个变量。在方法的第一行:
Set dDate = Worksheets("Formula").Range("A1")
应改为将dDate设置为范围的值,而不是范围本身。像这样:
dDate = Worksheets("Formula").Range("A1").Value
希望这有帮助
dDate = Worksheets("Formula").Range("A1").Value