vba - 根据条件创建新的单元格值

标签 vba excel

我需要有关 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/

相关文章:

excel - 为什么 ADO 连接即使在只读状态下仍会创建 "ldb"锁定文件?

sql-server - 使用 SSIS 在 excel 文件中导出值

excel - 在某些条件下求和

java - 读取带有公式的单元格给出与 Excel 文件不同的结果 - Java Apache POI

excel - VBA 运行时错误 -214724809 (80070057)

excel - 选择性邮件消息合并

Excel VBA过滤和删除

vba - Excel 单元格默认度量单位

excel - 有没有办法在 Mac 上使用 VBscript 代码将 CSV 转换为 XLS?

java - 使用 Apache POI 将工作表附加到 Excel 文件 - 由 NullPointerException 引起的 POIXMLException