Excel 如何在VBA中使用COUNTIF?
我正在尝试使用VBA来计算范围内的日期数。我的范围扩展了列和行,我试图找到最后一行和最后一列,但似乎无法得到我想要的结果 如何使用Excel 如何在VBA中使用COUNTIF?,excel,vba,countif,Excel,Vba,Countif,我正在尝试使用VBA来计算范围内的日期数。我的范围扩展了列和行,我试图找到最后一行和最后一列,但似乎无法得到我想要的结果 如何使用COUNTIF函数中的最后一行和最后一列 以下是我目前掌握的代码: Sub count_Month() Dim ws As Worksheet Dim LastCol As Long Dim count As Long Dim lastrow As Long lastrow = Sheet3.Range("M" & Rows.count).End(xlUp)
COUNTIF
函数中的最后一行和最后一列
以下是我目前掌握的代码:
Sub count_Month()
Dim ws As Worksheet
Dim LastCol As Long
Dim count As Long
Dim lastrow As Long
lastrow = Sheet3.Range("M" & Rows.count).End(xlUp).Row
Set ws = Sheets("clientmenu")
If Application.WorksheetFunction.CountA(ws.Cells) = 0 Then
LastCol = 1
Else
LastCol = ws.Cells.Find(What:="*", _
After:=ws.Range("A8"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
End If
With Application.WorksheetFunction
count = .CountIfs(Sheet2.Range("M8" & LastCol), ">=" & Sheet2.Range("R25"), Sheet2.Range("M8" & LastCol), "<=" & Sheet2.Range("R26"))
End With
Debug.Print count
End Sub
Sub count\u Month()
将ws设置为工作表
暗淡如长
不算长
最后一排一样长
lastrow=Sheet3.Range(“M”和Rows.count).End(xlUp).Row
设置ws=Sheets(“客户端菜单”)
如果Application.WorksheetFunction.CountA(ws.Cells)=0,则
LastCol=1
其他的
LastCol=ws.Cells.Find(内容:=“*”_
之后:=ws.范围(“A8”)_
看:=xlPart_
LookIn:=xl公式_
SearchOrder:=xlByColumns_
搜索方向:=xlPrevious_
MatchCase:=False)。列
如果结束
使用Application.WorksheetFunction
计数=.CountIfs(Sheet2.Range(“M8”和LastCol)、“>=”和Sheet2.Range(“R25”)、Sheet2.Range(“M8”和LastCol)、“子计数月份()
将ws设置为工作表
变暗LastCol为长,LastRow为长,计数为长,rng为范围
LastRow=Sheet3.Range(“M”和Sheet3.Rows.count)。End(xlUp)。Row
设置ws=Sheets(“客户端菜单”)
如果Application.WorksheetFunction.CountA(ws.Cells)=0,则
LastCol=1
其他的
LastCol=ws.Cells.Find(内容:=“*”_
之后:=ws.范围(“A8”)_
看:=xlPart_
LookIn:=xl公式_
SearchOrder:=xlByColumns_
搜索方向:=xlPrevious_
MatchCase:=False)。列
如果结束
附页2
设置rng=.Range(.Cells(8,13),.Cells(LastRow,LastCol))
以
count=Application.WorksheetFunction.CountIfs(rng,“>=”和Sheet2.Range(“R25”)_
rng,”你面临的具体问题是什么?你能描述一下你想用你的计数实现什么吗如果@AAA我当前的代码返回0的输出,它应该返回10。我的代码基本上是计算7月份的所有呼叫。Sheet2
包含它与Sheet3
匹配的日期。我正在尝试设置我的range到LastRow
和LastColumn
每个新呼叫从$M$8
开始记录,结果从$N$8
开始记录。第二次尝试记录日期的$O$8
,记录结果的$P$8
,依此类推on@AAA没错,只是我似乎不知道该怎么写。我的上一本书现在,LastCol总是在更改。请检查下面的答案,查看运行时错误无法获取WorksheetFunction类的CountIfs属性应用程序。WorksheetFunction.CountIfs(rng,“>=”&Sheet2.Range(“R25”),rng,“谢谢,请相应修改