如何在多个工作表中检测文本输入并操作其下方的单元格?

时间:2017-07-03 15:32:01

标签: excel vba excel-vba excel-formula

我正在试图弄清楚如何从不同的工作表中添加一些单元格值,但我不知道细胞引用的是什么,因为它们不同!

基本上我需要的值会出现在某些特定文本下方2行。所以我一直在寻找一个搜索多个工作表的公式,找到特定的文本,然后在下面的两行中添加这些值。

2 个答案:

答案 0 :(得分:3)

我希望您可以通过更改工作表,行和列范围,要查找的文本以及总计的目的地来适应您的情况。

Sub findfvalues()
    Dim rowValue
    Dim total
    total = 0
    For r = 1 To 25 'update this to suit your needs
        For c = 1 To 25 'update this to suit your needs
            If Cells(r, c).Value = "f" Then 'update "f" to search for what you want
                rowValue = r + 2
                total = total + Cells(rowValue, c).Value
            End If
        Next
    Next
    Cells(30, 1).Value = total 'update this to suit your needs

End Sub

因此我们只检查每个单元格中的“f”,如果找到它,我们将该值添加到运行总计中。显示最后的总数。

答案 1 :(得分:0)

这将在每个工作表中查找,如果找到您的文本,请将以下两行的值添加到正在运行的总计中:

Sub find_Values()
Dim ws As Worksheet
Dim findStr As String
Dim foundCell As Range
Dim total As Long

findStr = "my Text"

For Each ws In ActiveWorkbook.Worksheets
    Set foundCell = ws.Cells.Find(what:=findStr)
    If Not foundCell Is Nothing Then
        total = total + foundCell.Offset(2, 0).Value
    End If
Next ws

Debug.Print "The value is: " & total

End Sub