Sub countValueInWorkbook()
Dim formulaString As String
'//If you put your formula in any cell of Row 1, you will have a circular reference.
'//Start your formula with the sheet the search value cell is on, and count rows 2 thru 500 (or something)
formulaString = "=SUM(COUNTIF(Sheet1!2:500, $D$1),"
For Each wksht In ThisWorkbook.Sheets
If wksht.Name <> "Sheet1" Then
formulaString = formulaString & "COUNTIF(" & wksht.Name & "!1:500, $D$1),"
End If
Next wksht
'//Trim trailing comma and add ending parenthesis
formulaString = Left(formulaString, Len(formulaString) - 1)
formulaString = formulaString & ")"
'//Write formula to desired cell
Sheets("Sheet1").Range("$H$1").Value = formulaString
End Sub
1 回答
使用上面列出的确切步骤记录宏将不会为您提供任何要查看的代码,因为“查找全部”不会生成任何代码 . 但是,您可以使用代码构建一个可以提供所需内容的公式,并将该公式写入$ H $ 1 . 这是一个包含3张工作簿的示例 . Sheet1是您的搜索值所在的位置,另外两张图表的搜索值随机分散 . 假设您不想在计数中包含单元格D1,您可能会执行以下操作:
使用与此类似的东西,您将能够计算工作簿的每个工作表中的搜索值的所有实例 . 如果要在计数中包含搜索值单元格,请更改以下行:
至
这样SUM将添加额外的1 .
运行此代码后,我最终在单元格H1中使用以下公式:
希望这对你有所帮助!
编辑显示使用搜索单元本身而不是静态值,以便当您更改D1中的内容时,H1中的公式将更新以计算新值 .