Excel中按Worker组统计Task列加粗单元格数量的实现方法
按Worker组统计Task列加粗单元格数量的VBA实现
调整后的VBA函数
Function CountBoldByWorker(targetWorker As Variant, dataRange As Range) As Long Dim row As Range Dim workerCol As Range Dim taskCol As Range ' 遍历数据区域的每一行 For Each row In dataRange.Rows ' 取当前行的Worker列(数据区域第1列)和Task列(数据区域第2列) Set workerCol = row.Cells(1) Set taskCol = row.Cells(2) ' 判断Worker匹配且Task单元格加粗 If workerCol.Value = targetWorker And taskCol.Font.Bold Then CountBoldByWorker = CountBoldByWorker + 1 End If Next row End Function
函数说明
- 参数含义:
targetWorker:要统计的目标Worker名称(比如"张三")dataRange:包含Worker列和Task列的数据区域(需确保区域第1列是Worker,第2列是Task,比如A2:B10)
- 逻辑:逐行检查数据区域,当该行Worker值与目标匹配,且对应Task单元格字体加粗时,计数累加
使用示例
假设你的Worker列在A列,Task列在B列,数据从第2行开始到第10行,要统计Worker"张三"的加粗Task数量,在单元格中输入:
=CountBoldByWorker("张三", A2:B10)
可选优化(按需调整)
如果需要忽略Worker名称的大小写差异,可以把判断条件改成:
If StrComp(workerCol.Value, targetWorker, vbTextCompare) = 0 And taskCol.Font.Bold Then
内容的提问来源于stack exchange,提问作者metaltoaster
相关产品推荐
相关产品推荐

