gpt4 book ai didi

excel - 在 Excel VBA 中, "IsNull()"和 "var = Null"有什么区别?

转载 作者:行者123 更新时间:2023-12-04 22:09:18 27 4
gpt4 key购买 nike

考虑以下 VBA 函数:

Function getFirstColumn(Optional sheetName As String) As Long
'In particular the IF statement below.
If sheetName = "" Or sheetName = Null Then sheetName = ActiveWorkbook.ActiveSheet.Name
With ActiveWorkbook.Worksheets(sheetName)
getFirstColumn = .Cells.Find("*", .Cells(1), xlFormulas, xlWhole, xlByColumns, xlNext).Column
If Err <> 0 Then getFirstColumn = 0
End With
End Function

使用此功能时,从第二张打开的工作表中使用它时我没有问题。

但是当代码更改为基于函数的等效代码时, 'If IsEmpty(sheetName) Or IsNull(sheetName) Then sheetName = ActiveWorkbook.ActiveSheet.Name ,如果我尝试从不拥有它的工作表中使用该功能,我会遇到问题:

Erro em tempo de execução '9':
Subscrito fora do intervalo.



它们之间有什么区别?为什么会准确触发这样的错误?

最佳答案

“sheetName”是一个变量。该变量可能是未定义的,可能是指一个对象......或者可能是 NULL。

如果它是一个对象,则该对象本身可能评估为变量值 NULL。因此,“IsNull()”函数。

其他变体包括“IsEmpty()”(您提到过)、“IsNothing()”甚至“IsMissing()”:

  • http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/aff30d44-0a7d-435e-8f15-7edd4f7f03d1/
  • http://www.tek-tips.com/faqs.cfm?fid=3710
  • 关于excel - 在 Excel VBA 中, "IsNull()"和 "var = Null"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12750839/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com