我在Excel工作簿中有两个字段:
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
有人有什么想法吗?如果该字段有一个' X'对于一个值(或长度计数为1),我需要保存' 1'在我的其他工作表中。如果该字段为空(或长度为0),那么我需要保存' 0' 0在我的其他工作表中。
我很遗憾为什么我的IsEmpty()检查功能不正常。
答案 0 :(得分:5)
我认为你不能在一系列细胞上使用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
。