我有一个数据库,其中包含1~100的数字。我希望VBA在A列中运行此列表,在A介于20和40之间的区域,在B列键入McFly。
我的代码在以“If list> =”开头的行上给出了一个不匹配错误13
Dim list As Range
Dim list_readthru As Range
Set list = Range("A2", Range("A50").End(xlUp))
For Each list_readthru In list
If list >= 20 And list <=40 Then Range("B:B") = "McFly"
Next list_readthru
End Sub
我在确定自己做错了什么时遇到了问题。
答案 0 :(得分:2)
如果你想要一个数组,你可以有一个数组:
Sub MM()
Dim list, i
list = WorksheetFunction.Transpose(Range("A2", [A50].End(xlUp)))
For i = 1 To UBound(list)
If list(i) >= 20 And list(i) <= 40 Then Cells(i + 1, 2).Value = "McFly"
Next
End Sub
但是,我不知道这与将一个公式放在B栏中有何不同:
With Range("B2", [A50].End(xlUp))
.FormulaR1C1 = "=IF(AND(RC[-1]>=20,RC[-1]<=40),""McFly"","""""")"
.Value = .Value
End With
答案 1 :(得分:1)
您将list
调暗为Range对象(不是数组),因此将其作为范围使用。例如,list.value
同样适用于list_readthru
。
答案 2 :(得分:1)
你在这里混淆了一些东西。试试这个:
object.scale.copy( vector );