我收到以下代码的错误
对象'_Worksheet'的方法'Range'失败。
有谁可以看到这里的问题是什么?
Dim to_do As Worksheet, ordered As Worksheet
Set to_do = Sheets("To do log")
Set ordered = Sheets("Working File")
to_do.Range(G4).Formula = _
Application.WorksheetFunction.Index(ordered.Range("F:F"), _
Application.Match(to_do.Range("B4"), ordered.Range("B:B"), 0))
答案 0 :(得分:3)
to_do.Range(G4)
不是有效的定义。它应该是to_do.Range("G4")
。 @灰。正确指出如果您在代码表的顶部使用Option Explicit
,VBA会在您第一次运行代码时突出显示错误。
我建议您使用Value
属性来分配值,除非它是您要分配的Formula
,但是您的代码会分配一个值,因为INDEX
函数会返回Value
属性为默认值的范围。如果你想要公式,你必须指定它。
答案 1 :(得分:1)