偏移vba对象

我有一个简单的macros,已经工作了几个月,现在突然间,当我重新格式化(线索,但我不知道)。 我知道偏移函数周围的问题中心,这似乎有一些问题。

我想使用其他(单元格),但我不知道如何。

具体来说,我有一个范围,我正在检查和改变附近的细胞。

有没有办法做这样的事情'单元格'

Dim x As Variant x = Worksheets("Book1").Range("A131") If (x = some value And x>0) Then x.Offset(0,7).Value = some value End if 

现在excel向我展示了一个Object是必需的错误

你需要使用SET:

 SET x = Worksheets("Book1").Range("A131") 

当你不使用SET时,你将返回Cell中的值,而不是实际的Range对象(使用Offset()所需的)…使用X之后,使用x.Value返回单元格的内容。

您使用Cells()的代码:

 Dim x As Variant Dim ws as Worksheet Set ws = Worksheets("Book1") x = ws.Cells(131, 1).Value ' row 131, column 1 (A131) If (x = some value And x>0) Then ws.Cells(138, 1).Value = someValue ' row 138, column 1 (A138) End if