【发布时间】:2019-06-10 10:41:45
【问题描述】:
我正在使用 VBA 处理 Excel 文档。本文档包含一个包含多列的数据库,但为简单起见,假设我有 2 列:
- C 列对应名称
- F 列对应数字。
我正在尝试创建一个宏来检查 F 列中的所有数字(带有循环)。如果数字大于 100,则检查 C 列中的相邻单元格。如果名称对应于条件(假设对应于 John 或 Tom),则在另一张表中添加数字的值。如果这些都不适用,请检查下一个单元格。
我的问题是我找不到在 C 列中定义单元格的方法(创建变量/对象来调用单元格或直接调用相邻的单元格)。
我的代码如下所示:
Sub Test1()
Dim rngnumbers, rngnames, MultipleRange As Range
Set rngnumbers = Sheet2.Range("F2:F999")
Set rngnames = Sheet2.Range("C2:C999")
Set MultipleRange = Union(rngnumbers, rngnames)
For Each numb In rngnumbers
If numb.Value >= 100 Then
If Sheet2.Range("C2") = "John" Or Sheet2.Range("C2") = "Tom" Then '''The problem here is that it only looks at the cell C2 and not the adjacent cell
Sheet1.Range("I999").End(xlUp).Offset(1, 0).Value = numb.Value
Else
End If
End If
Next numb
End Sub
我尝试修改该行:
'If Sheet2.Range("C2") = "John" Or Sheet2.Range("C2") = "Tom" 然后'
类似于:
'newname.String = "John" '
但我找不到定义newname 的方法。
另一个想法是增加 For 循环中名称的 If 语句。
补充说明: 我也没有直接在 Excel 中使用公式,因为当 if 函数为 False 时,我不想要任何空白单元格或零。
【问题讨论】:
标签: excel vba loops if-statement range