我是VBA的新手,我知道有类似的问题,但我似乎无法找到答案。我只想拥有一个可变范围,允许宏在列表中逐个遍历所有值,但它一直给我同样的错误。另外,我想比较某个范围内的所有数字,并选择多于另一个值的第一个值(全部在同一行)。我不知道我是否做得对,代码在这里:
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'失败
谢谢你们,任何意见都会非常感激。
答案 0 :(得分:2)
您的变量i
还没有值,您正在使用它来设置buysignal
范围。因此,请将i
设置为值。
接下来,同一行会抛出错误,因为您使用set
来设置对象的值,但是您将其设置为单元格的值。这是一种类型不匹配。
在开始编码之前计划您想要做的事情。哦,不要使用变种。它要求你现在面临的那种麻烦。正确键入您的变量,然后您将立即捕获类型不匹配。