Ana*_*tic 1 excel vba function excel-2007 excel-vba
我在Excel工作簿中有2个字段:
1. MED - 范围("J13:K13")
公式:= IF(D5 = 1,"X","")
2.非中等 - 范围("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
Run Code Online (Sandbox Code Playgroud)
我尝试在我的IF语句中使用以下内容,但计数始终为'1':
'1. Med
If WorksheetFunction.CountA(range("J13:K13")) = 0 Then
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?如果字段的值为"X"(或长度为1),那么我需要在其他工作表中保存"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
Run Code Online (Sandbox Code Playgroud)
这将避免计算返回空字符串的公式.
此语句True仅评估所有单元格是否为空/空字符串值.