0
   Application.WorksheetFunction.SumIf(_
     sht_store.Range(Cells(k, 12), (k, lcol)),_
     "       <>",_
     sht_store.Range(Cells(5, 12), Cells(5, lcol)))

如果单元格是非空白的,我编写了这段代码来总结这些值。但是这不起作用,因为单元格可能是空白的,但仍然可能有公式。

我无法更改模块中的任何其他代码。有什么方法可以给出其他条件来总结非空白(而不是“<>”)?

4

2 回答 2

2

在 VBA 中,您可以使用

  • IsEmpty对于空单元格
  • 要检查单元格是否有公式,

代码:

Option Explicit 

Function IsFormula(ByRef wscell As Range) As Boolean 
    IsFormula = wscell.HasFormula 
End Function 

在 Excel 中,您可以使用

因此,在您的情况下,请检查一下:

  1. 检查单元格是否有公式
  2. 然后检查它是否为IsNull,没有空格。

之后,您可能会开始使用您的SumIF. 无论公式如何,如果单元格是否真的为空/空,这将返回。

Function izNull(ByRef rng As Range) As Boolean
 If Trim(rng.Value) = "" Then
    izNull = True
 End If
End Function
于 2013-02-27T08:01:46.567 回答
0

我让它与使用.Text属性一起工作:

Cells([rowindex],[columnindex]).Text = ""

于 2014-09-02T12:43:10.823 回答