如何使某些工作表的 count ifs 函数起作用?

问题描述 投票:0回答:1

我一直在尝试编写自己的代码,因为我找不到任何可以满足我需要的东西。首先是代码:

      Dim n As Long
Dim m, range1 As Range
Dim wss As Worksheet
Set range1 = wss.Range("FC2", wss.Range("FC2").End(xlDown))

  If wss.Name Like "TAPS" Then
For Each wss In Worksheets
With range1
For Each m In .Rows
If Application.CountIf(m) > 30 Then
n = n + 1
Mark1.WBAVAILABLETEXTBOX.Value = n
End If

我想要这段代码做的是找到我的工作簿中名称中包含“TAPS”一词的每个工作表,并计算“FC2”中单元格值超过 30 的每个已使用行,并将该值放入文本框中。

我本来代码里有一些“Next”和“end with”,但是一直弹出错误,不仅说“end with without with”,而且当我删除它时,它说相反的,同样的问题与“下一步”有关“对于每个”方面。

这是我用我有限的知识想出的代码,我什至很难解释它。对我做错了什么有什么想法吗?

excel vba countif
1个回答
0
投票

假设 OP 尝试验证已使用范围中的每个已使用行,列 FC 用于确定数据范围。

如果我误解了,请提供OP的详细信息或评论。

Sub demo()
    Dim n As Long, i
    Dim Range1 As Range
    Dim wss As Worksheet
    n = 0
    For Each wss In Worksheets
        If wss.Name Like "*TAPS*" Then
            For i = 2 To wss.Cells(wss.Rows.Count, "FC").End(xlUp).Row
                Set Range1 = wss.Rows(i)
                If Application.CountIf(Range1) > 30 Then n = n + 1
            Next
        End If
    Next
    Mark1.WBAVAILABLETEXTBOX.Value = n
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.