【发布时间】:2019-10-29 09:09:27
【问题描述】:
我需要一个代码来查看表格中的一列,如果文本中有某个字符串,则需要在另一列中输入新文本。
因此,查看 A 列(服务子类型),根据 A 列在 B 列(产品类别)中输入文本。这就是我目前所拥有的。
Dim productsubtype As Range
For Each productsubtype In Range("RawData[Service Sub Type]")
If productsubtype.Value = "Training" Then
Range("RawData[Product Category]").Value = "Education"
End If
Next productsubtype
但是发生的情况是,它只是用“教育”填充所有 B 列,而不管 A 列中的内容是什么。我做错了什么?
【问题讨论】:
-
Range("RawData[Product Category]")指的是整个列。如果您已经知道这些列,我会使用productsubtype.Offset(,1).Value = "Education"。 -
为什么这不能是
IF列中的[Product Category]公式?=IF([Service Sub Type]="Training", "Education", "???")? -
或者更好的是,有另一个表将“服务子类型”映射到“产品类别”,并且让其他列只是一个查找公式。
-
@BigBen 我不知道为什么,但这样做完全解决了我的问题。两天的研究...谢谢!
-
“一个巨大的 if-then 序列”一遍又一遍地在同一个表达式上,闻起来非常非常像一个非常易于管理的查找表的工作。
标签: vba if-statement foreach