我需要有关 VBA 代码的帮助,该代码将为我的数据集在新列中设置条件。
基本上,如果单元格 AB2 包含“iMac”或“MacBook”,则在单元格 AD2 中分别写入“iMac”或“MacBook”。然后对整个数据集执行此操作。注意:AB 列是项目描述列表,我只对 iMac 和 MacBook 感兴趣。
Dim celltxt As String
Dim lastRow As Long
lastRow = Range("A" & Rows.Count).End(xlUp).Row
celltxt = ActiveSheet.Range("AB2").Text
If InStr(1, celltxt, "iMac") Then
Range("AD2").Select
Selection.Value = "iMac"
ElseIf InStr(1, celltxt, "MacBook") Then
Range("AD2").Select
Selection.Value = "MacBook"
End If
Range("AD2").AutoFill Destination:=Range("AD2:AD" & lastRow)
我有一种感觉,你不能自动填充 if-else ......
如果有更好的方法来解决这个问题,我愿意接受建议。
最佳答案
我想你想要一个功能。添加这个:
Function FindModel(Expr As String) As String
For Each Model In Array("iMac", "MacBook")
If InStr(1, Expr, Model, vbTextCompare) Then
FindModel = Model
Exit Function
End If
Next
End Function
然后像这样使用它:
=FindModel(AB2)
在你的工作表中
关于vba - 根据条件创建新的单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50533555/