Excel VBA : how do I call VLOOKUP if condition is met?

标签 excel vba

我有一个来自 Oracle 的数据集,但 E 列中的许多记录缺少 GEO 数据(AMER、EMEA、APAC),而是显示“-”。我正在使用 VB 格式化和处理这些数据,除了这一部分之外,我一切正常。

我想要做的是调用 VLOOKUP 公式,根据 J 列中显示的国家/地区名称,将这些“-”值替换为正确的 GEO。应绕过已存在 GEO 的所有记录。不幸的是,我为此构建的代码覆盖了每条记录:

For z = 1 To LR
    x = Application.VLookup(Cells(z, "J"), Sheets("MasterTerritoryList").Columns("A:F"), 6, False)
    If Not (IsError(x)) Then
       Cells(z, "E").Value = x
    End If
Next z

有人可以帮我演示如何读取 E 列中的数据并仅替换那些等于“-”的值吗?

非常感谢!!

最佳答案

  For z = 1 To LR
      If Cells(z, "E").text = "-" Then ' <-------- Add this test
        X = Application.VLookup(Cells(z, "J"), Sheets("MasterTerritoryList").Columns("A:F"), 6, False)
        If Not (IsError(X)) Then Cells(z, "E").Value = X
      End If
  Next z

关于Excel VBA : how do I call VLOOKUP if condition is met?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44336586/

相关文章:

asp.net - 对于具有大量客户端 excel 类型操作的 Web 应用程序,哪种平台/技术最适合?

vba - 使用表作为 VBA 中的常量值与 listobjects

excel - 使用 Word VBA 将特定的 Excel 单元格值拉入 Word 文档

vba - 在Excel中使用环境变量

excel - 获取Excel中单元格的格式化值

python - 如何在 Python 中打开 Excel 文件?

vba - 仍然暂停代码执行的无模式形式

vba - 主动控制更改事件 - MS Access

excel - 使用 VBA 从 DIV 检索数据

vba - 随机化似乎错过了许多可能的种子