Arrays VBA函数告诉机器不要显示某些变量
我想知道如果VLookup函数找不到任何东西,是否有办法告诉excel不要显示一些变量 我的代码大致是这样做的:通过查找另一个excel工作簿中的一些数字,比较上一年的值,并将差异显示在另一个电子表格中,所有这些都在一个大的合并单元格中。 我的代码中的一些摘录:Arrays VBA函数告诉机器不要显示某些变量,arrays,excel,vba,exists,Arrays,Excel,Vba,Exists,我想知道如果VLookup函数找不到任何东西,是否有办法告诉excel不要显示一些变量 我的代码大致是这样做的:通过查找另一个excel工作簿中的一些数字,比较上一年的值,并将差异显示在另一个电子表格中,所有这些都在一个大的合并单元格中。 我的代码中的一些摘录: cashO = Val(Application.VLookup("cash" & "*", Workbooks("creditreport.csv").ActiveSheet.Range("A1:F199"), 4, False
cashO = Val(Application.VLookup("cash" & "*", Workbooks("creditreport.csv").ActiveSheet.Range("A1:F199"), 4, False))
然后差cash=Round(cashN-cashO,0)
然后显示:MergedCell.Value=“现金增加”&Cash
但是,如果首先找不到现金,我不想显示现金(如果是这种情况,则在找不到现金和更改为空时,cash=0)
我想用我所有的变量(现金,…)创建一个数组,然后循环遍历它。但是我在网上找不到任何关于“如果找不到,不要显示任何内容”的内容
最好的方法是,您可以使用if-else语句检查现金的价值,并在现金有价值时写入价值,如果是这样的话,还可以写入一些其他消息,如“无变化”或“无以前的价值”
if cash = 0
MergedCell.Value = "No Change"
Else
MergedCell.Value = "Cash increased by" & cash
End If
我希望我能理解您的意思,您的意思是
VLookup
没有找到与“现金”匹配的项,如果是这种情况,您需要进行错误处理。
如果是这种情况,请尝试以下代码:
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
Sub-VLookup_测试()
出错时继续下一步
cashO=Val(Application.VLookup(“cash”和“*”,工作簿(“creditreport.csv”).ActiveSheet.Range(“A1:F199”),4,False))
如果错误号为0,则
MsgBox“未找到现金”'
“如果在VLookup中未找到cashO,请执行您的操作
如果结束
错误转到0
端接头
或者您可以检查函数是否返回错误:
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
谢谢你的回答!如果我不希望vba在其他文档中找不到cash时显示cash,那么我认为我需要将您的
cash=0
替换为类似“cash=”“`的内容。我建议避免使用相同变量的混合数据类型,即,我猜您已经将cash定义为整数或其他数字类型。“”是空字符串,不是数字。如果您不想只处理If语句中的输出,而是以后再处理,那么可以使用一个布尔值cashExists,并在else部分使用“cashExists=False”代替“cash=0”和“cashExists=True”。然后在if之后,您可以执行“if cash exists Then….else….end if”来格式化代码中稍后的输出。