2013-02-27 69 views
0

我有一个简单的宏,已经工作了几个月,现在当我重新格式化(线索,但我无法弄清楚)突然它的破碎。我知道偏移函数的问题中心,这似乎有一些问题。偏移vba对象

我想使用别的东西(单元格),但我不知道如何。

具体来说,我有一个范围,我正在检查并改变附近的单元格。

有没有办法做这样的事情与“细胞”

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是显示我的对象是必需的

+0

论哪一行代码发生错误? – 2013-02-27 16:30:34

+1

你能否更新你的代码到完全是导致问题的代码?例如,具有'(x =某个值)'会因为“某个值”为2个单词而容易出错......请在您的代码示例中更明确一点,以便我们可以更轻松地确定问题所在...... – 2013-02-27 17:32:55

回答

2

您需要使用SET的错误:

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

当您不使用SET时,您将返回单元格中的值,而不是实际的范围对象(使用Offset()时所需的)...使用X后使用x.Value返回该细胞。

+0

谢谢,但我在范围值的宏中使用了SET。对不起,我没有在示例代码中使用'对于每个人都开始阅读 – AbeeCrombie 2013-02-27 17:06:04

+1

我测试了你的代码,因为你发布了它,它返回了你提到的错误(“对象是需要)我将它改为包含SET,并按预期工作,你能用你实际使用的代码更新你的问题吗? – 2013-02-27 17:28:20

1

使用您的代码细胞():

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