没有值时如何退出IIf()语句

时间:2019-09-17 10:16:03

标签: excel vba

如果没有返回值,是否可以终止IIf()语句?

这是我的代码的样子:

Do While Sheets("testsheet").Cells(1, Z) <> ""
  text1 = Sheets("testsheet").Cells(1, Z).Value
  vLook = Application.HLookup(text1, lookupRange, u, False)
  Sheets("Kilepok").Cells(i, Z).Value = IIf(IsError(vLook), ????, vLook)
  Z = Z + 1
Loop

代码贯穿标头(z),并寻找一个值。如果它找到一个值,我想在这种情况下粘贴它(当vlook中没有错误时)。在其他情况下,我不想修改当前单元格的值。

1 个答案:

答案 0 :(得分:1)

要么

Sheets("Kilepok").Cells(i, Z).Value = IIf(IsError(vLook), Sheets("Kilepok").Cells(i, Z).Value, vLook)

If Not IsError(vLook) Then Sheets("Kilepok").Cells(i, Z).Value = vLook

会做。

但是请注意,第一个将重写单元格的值(这会使它变慢),如果其中包含论坛,则会将其转换为值。因此,第二个将是首选解决方案。