可变范围并不断得到“对象_工作表的方法范围失败”

我是新来的VBA,我知道类似的问题已经被问,但我似乎无法find答案。 我只想有一个可变范围来允许macros遍历列表中的所有值,但它一直给我同样的错误。 另外,我想比较一定范围内的所有数字,并select比另一个值(全部在同一行)更多的第一个值。 我不知道我是否正确,代码在这里:

Option Explicit Private Sub CommandButton1_Click() Dim buysignal As Variant Dim OHLC As Variant Dim ffdhigh As Variant Dim i As Long Sheets("sheet2").Activate Set buysignal = Range("M" & i).Value OHLC = Range("B" & i & ":" & "E" & i).Value ffdhigh = Range("I" & i).Value For i = 63 To 150 If OHLC > ffdhigh Then buysignal = "buy" Else: buysignal = "" End If Next i End Sub 

错误消息:运行时错误'1004':对象_worksheet的方法'范围'失败

谢谢你们,任何input将非常感激。

你的variablesi还没有价值,你正在使用它来设置buysignal范围。 所以,把i设为一个值。

接下来,同一行会抛出一个错误,因为您使用set来设置对象的值,但是将其设置为单元格的值。 这是一个types不匹配。

在开始编码之前计划你想要做的事情。 哦,不要使用变种的一切。 这是要求你现在面临的那种麻烦。 正确地键入你的variables,那么你将立即捕获types不匹配。