Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 制造;Countif“;工作表函数变量_Vba_Excel - Fatal编程技术网

Vba 制造;Countif“;工作表函数变量

Vba 制造;Countif“;工作表函数变量,vba,excel,Vba,Excel,我有一个代码,如果有一个数字,它可以计算一个范围内的单元格。第3行将显示已计数的单元格总数。我现在的问题是,这个公式不是可变的,我也不知道怎么做。 如果输入此代码,第3行将报告所有相同的结果(来自第一列数据)。希望有人能在这里帮助我 Sub Six_Continue() Dim Rng As Range Dim LastClm As Long With ActiveSheet LastClm = .Cells(1, .Columns.Count).E

我有一个代码,如果有一个数字,它可以计算一个范围内的单元格。第3行将显示已计数的单元格总数。我现在的问题是,这个公式不是可变的,我也不知道怎么做。 如果输入此代码,第3行将报告所有相同的结果(来自第一列数据)。希望有人能在这里帮助我

Sub Six_Continue()

    Dim Rng As Range
    Dim LastClm As Long


    With ActiveSheet
        LastClm = .Cells(1, .Columns.Count).End(xlToLeft).Column
        Set Rng = Range(.Cells(3, 3), .Cells(3, LastClm))
        Rng.Value = Application.WorksheetFunction.CountIf(Range("C5", "C" & Cells(Rows.Count, 5).End(xlUp).Row), "<>?")
    End With

End Sub
Sub-Six_Continue()
变暗Rng As范围
将最后一个CLM变长
使用ActiveSheet
LastClm=.Cells(1,.Columns.Count).End(xlToLeft).Column
设置Rng=范围(.Cells(3,3),.Cells(3,LastClm))
Rng.Value=Application.WorksheetFunction.CountIf(范围(“C5”、“C”和单元格(Rows.Count,5).End(xlUp).Row),“?”)
以
端接头

尝试此修改版本:

Sub Six_Continue()

Dim Rng As Range
Dim LastClm As Long, i As Long
LastClm = Cells(1, Columns.Count).End(xlToLeft).Column

For i = 1 To LastClm
    Cells(3, i).Value = Application.WorksheetFunction.CountIf(Range(Cells(1, i), Cells(2, i)), "<>?")
Next
End Sub
Sub-Six_Continue()
变暗Rng As范围
我和你一样长,我和你一样长
LastClm=单元格(1,Columns.Count).End(xlToLeft).Column
对于i=1到LastClm
单元格(3,i).Value=Application.WorksheetFunction.CountIf(范围(单元格(1,i),单元格(2,i)),“?”)
下一个
端接头

您的
CountIf
将对单元格进行计数,即使它们不包含数字。使用
Count
可确保只考虑包含数字的单元格

Sub Six_Continue()

    Dim Rng As Range
    Dim LastClm As Long
    Dim myClm As Long


    With ActiveSheet
        LastClm = .Cells(1, .Columns.Count).End(xlToLeft).Column
        For myClm = 1 To LastClm
            Set Rng = .Cells(3, myClm)
            Rng.Value = Application.WorksheetFunction.Count(Range(.Cells(5, myClm), .Cells(.Cells(Rows.Count, myClm).End(xlUp).Row, myClm)))
        Next myClm
    End With

End Sub

你知道COUNT只计算数字而COUNTA计算数字和文本吗?是的,我知道。计数函数在我的工作表中运行得很好,我似乎无法获得范围以转到下一列!这对我有用。非常感谢!!也许我没有指定,但我的范围内的数字是数组公式的结果。这就是为什么我用countif和?