function - VBA:Excel 范围总是显示为空?

标签 function vba excel excel-2007

我在 Excel 工作簿中有 2 个字段:

1. MED - 范围(“J13:K13”)

公式:=IF(D5=1,"X","")

2. 非 MED - 范围(“L13:M13”)

公式:=IF(D5=2,"X","")

使用以下代码时,字段始终显示为非空,因此保存值为“1”:

    '1. Med
    If Not IsEmpty(range("J13:K13").value) Then
        Worksheets("FeedSamples").range("AK" & newRow).value = 1
    Else
        Worksheets("FeedSamples").range("AK" & newRow).value = 0
    End If
    '2. Non-Med
    If Not IsEmpty(range("L13:M13").value) Then
        Worksheets("FeedSamples").range("AL" & newRow).value = 1
    Else
        Worksheets("FeedSamples").range("AL" & newRow).value = 0
    End If

我尝试在我的 IF 语句中使用以下内容,但计数始终为“1”:
    '1. Med
    If WorksheetFunction.CountA(range("J13:K13")) = 0 Then

有人有想法么?如果该字段的值(或长度计数为 1)有一个“X”,那么我需要在我的另一个工作表中保存“1”。如果该字段为空(或长度计数为 0),那么我需要在我的其他工作表中保存“0”。

我不知道为什么我对 IsEmpty() 的检查无法正常运行。

最佳答案

我不认为你可以使用 IsEmpty在一系列单元格上。我可以复制这种行为,每当我通过 2+ 个单元格的范围时,IsEmpty函数返回 False .

尝试使用 If Application.WorksheetFunction.CountA(Range("J13:K13")) = 0
这将检查范围内是否存在任何值,并返回值 0只有当所有单元格都没有值时(范围为空),否则返回非零值,表示范围不为空。

修订

范围内公式的存在,甚至返回空字符串 ( "" ) 值的公式将被 COUNTA 计数。功能。

您也许可以使用 COUNTIF功能:

If Application.WorksheetFunction.CountIF(Range("J13:K13"),"") = Range("J13:K13").Cells.Count

这将避免计算返回空字符串的公式。

该语句计算 True当且仅当所有单元格都是空白/空字符串值。

关于function - VBA:Excel 范围总是显示为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551817/

相关文章:

我可以重新定义一个函数或检查它是否存在吗?

javascript - D3 - 2 个折线图的单独工具提示值 - 使用 AngularJS

excel - 在 Excel VBA 中设置多列的列宽

vba - . 未选择工作表时复制方法失败

c++ - 数组初始化函数

Python 在函数内导入库以实现多线程

VBA比较多个变量

date - 使用vba在access中将空值插入到日期字段

c# - 如何以编程方式向 C# Excel vsto 中的单元格添加彩色边框?

excel - 如果任意列中有值,则将每一行计为 1