VBA函数告诉机器不要显示某些variables

我想知道是否有办法告诉Excel不显示一些variables,如果VLookup函数找不到任何东西。

下面是我的代码大概是什么:在另一个excel工作簿中查找一些数字,比较前一年的数值,然后在其他电子表格中显示差异,所有数据都放在一个大的合并单元格中。 我的代码摘录如下:

cashO = Val(Application.VLookup("cash" & "*", Workbooks("creditreport.csv").ActiveSheet.Range("A1:F199"), 4, False)) 

那么差额cash = Round(cashN - cashO, 0)

然后显示: MergedCell.Value = "Cash increased by" & cash

但是如果它不能find现金,我不想显示现金(如果是这种情况,当现金无法find,当更改为空时,现金= 0)。

我正在考虑用我所有的variables(现金,…)创build一个数组,然后通过它循环。 但我找不到任何网上的“如果没有发现不显示任何东西”。

最好,

您可以使用if else语句来检查现金的价值,并在现金有价值的情况下写入价值,如果情况如此,则可以写入“无变化”或“无以前的价值”等其他消息。

 if cash = 0 MergedCell.Value = "No Change" Else MergedCell.Value = "Cash increased by" & cash End If 

或者你可以检查函数是否返回错误:

 if iserror(Application.VLookup("cash" & "*", Workbooks("creditreport.csv").ActiveSheet.Range("A1:F199"), 4, False)) then cash = 0 else cashO = Val(iserror(Application.VLookup("cash" & "*", Workbooks("creditreport.csv").ActiveSheet.Range("A1:F199"), 4, False)) ....other statements for whatever... end if 

我希望我能理解你,你的意思是VLookup没有find“现金”的匹配,如果是这种情况,你需要error handling。 如果是这种情况,请尝试下面的代码:

 Sub VLookup_Test() On Error Resume Next cashO = Val(Application.VLookup("cash" & "*", Workbooks("creditreport.csv").ActiveSheet.Range("A1:F199"), 4, False)) If Err.Number <> 0 Then MsgBox "cashO not found" ' ' Do your actions if cashO not found with VLookup End If On Error GoTo 0 End Sub