Excel 2010 VBA如何在多个工作表中查找值?

时间:2014-06-03 16:57:54

标签: excel vba excel-vba excel-2010

我有一个包含14个工作表的excel文件,我需要在每个工作表的不同列中查找值,如果找到它,则返回在摘要表的列表中找到值的工作表的名称。

我尝试过使用if和vlookup功能,但是我找不到合适的结果,我也尝试使用数据透视表,但因为我有多张表,所以它对我不起作用。

我希望有人帮助我进行一些VBA编码来解决这个问题。

我是编码和VBA的新手,我仍然不理解所有这些,所以我没有尝试自己编码,对不起。

2 个答案:

答案 0 :(得分:0)

尝试使用以下公式函数来创建解决方案。如果你不能提出有用的东西,发布你所拥有的东西,我们可以通过它。

ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

IF(logical_test,value_if_true,value_if_false)

另请考虑使用Named Ranges

让我知道你的想法:)

答案 1 :(得分:0)

希望这会有所帮助。 :)

Sub findStuff()
Dim ws As Worksheet
Dim strWhat As String
Dim rngSearch As Range
Dim rngFound As String
Dim i As Integer

strWhat = "Raspberry"
For Each ws In Worksheets
    Set rngSearch = ws.Cells.Find(What:=strWhat)
    If Not rngSearch Is Nothing Then
        i = i + 1
        If i = 1 Then
            rngFound = rngSearch.Worksheet.Name
        Else
            rngFound = rngFound & ", " & rngSearch.Worksheet.Name
        End If
    End If
Next ws

MsgBox "'" & strWhat & "' found on the following worksheet(s): " & rngFound & "."
End Sub