首页 > 解决方案 > 为什么在使用 IsEmpty() 方法时,使用 Len() 方法长度为 0 的单元格等于 False?

问题描述

我有一个包含 2 个空格的单元格作为单元格中唯一的内容,当我使用该len(trim(cell))方法时,它返回的长度为0,但如果我使用IsEmpty(trim(cell))它返回False. 但是,IsEmpty()在空白单元格上返回一个True. 为什么会这样?

我使用的代码是:

MsgBox (IsEmpty(Application.WorksheetFunction.Trim(ThisWorkbook.Worksheets("Sheet1").Cells(1, 1))))
MsgBox (Len(Application.WorksheetFunction.Trim(ThisWorkbook.Worksheets("Sheet1").Cells(1, 1))))

标签: excelvba

解决方案


正如微软指出的那样,IsEmpty 函数“返回一个布尔值,指示变量是否已被初始化”。所以很明显,一个空白单元格被认为是未初始化的,而一个字符串——甚至是一个空的——被初始化。

您可以编写自己的函数来测试空字符串:

    Function IsStringEmpty(s As String) As Boolean
        IsStringEmpty = Len(s) = 0
    End Function

推荐阅读