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