【发布时间】:2018-01-11 15:21:04
【问题描述】:
我正在尝试创建一个代码,让我可以检查列 A 和 C 是否都匹配“汽车”和“红色”。如果是,我想在我现有的DicoRedCar 中填写汽车品牌作为项目,价格作为关键是我的代码:
Sub Dicofill()
Dim DicoRedCar As Object
Set DicoRedCar = CreateObject("Scripting.Dictionary")
Dim Startcell As Range
Set Startcell = Data.Range("A1")
i = i + 1
If Startcell.Offset(i, 0).Value = "Car" And Startcell.Offset(i, 2).Value = "Red" Then
DicoRedCar.Add Startcell.Offset(i, 0).Value, Startcell.Offset(i, 1).Value
End If
End Sub
第1栏是车型,第2栏是汽车品牌,第3栏是汽车颜色,第6栏是汽车价格。
但它不喂 Dico。我知道在 A24 范围内出现了一辆红色汽车,但没有任何反应。我试图用 MsgBox 检查 Then 语句,但它什么也没给我。我试过了,但什么也没发生:
If Startcell.Offset(i, 0).Value = "Car" And Startcell.Offset(i, 2).Value = "Red" Then
Msgbox("found a Red Car")
End If
所以我认为阻塞点首先来自我的“If...Then”语句
【问题讨论】:
-
您似乎没有在循环播放。上面的代码只会检查第 2 行。
-
Data是指您要向下扫描的范围,还是工作表引用? -
是我在其他地方定义的,它没有传入,也没有用值初始化?对我来说它看起来不像一个循环,通常你会在你的代码之后递增,所以它会在再次检查条件之前发生。
-
A 列和 C 列的长度是否总是相同(不缺少数据),并且是否知道起始行?一旦知道这一点,应该很快就会聚在一起。
-
数据参考我的表格
标签: vba excel dictionary if-statement multiple-conditions