如何使用find函数返回的值?

时间:2014-06-17 05:39:05

标签: excel vba

我只是希望能够从一个组合框搜索一系列单元格中的值,然后如果找到它存储在某个地方用于其他一些计算,但我根本无法使它工作。

我真的不明白find函数实际上在做什么。它是否返回一个范围变量,用于标识输入的位置?如果是这样,我如何参考/使用该范围?

请不要在没有解释的情况下发布代码我真的很想了解这里发生了什么。

Sub run_averages()
    Dim x As Integer
    Dim rngFindValue As Range

    Set dd = ActiveSheet.DropDowns("thing")
    Set aa = ActiveSheet.DropDowns("otherthing")

    With Range("E3:DI3")
        Set rngFindValue = .Find(What:=" & aa &", _
            After:=ActiveSheet.Range("E3"), LookIn:=xlFormulas)
        With rngFindValue
            rngFindValue.Active
        End With
    End With
End Sub

3 个答案:

答案 0 :(得分:0)

使用以下代码:

    Set rngFindValue = .Find(What:=" & aa....

您将找到的单元格引用为Range。因此,如果您想使用该特定单元格的值,您可以像使用任何Range() - >一样使用它。 rngFindValue.Value

答案 1 :(得分:0)

试试这个:

Dim x As Long
Dim myitem As String, rngFindValue As Range

x = Activesheet.Shapes("thing").ControlFormat.Value
myitem = Activesheet.Shapes("thing").ControlFormat.List(x)

With Range("E3:DI3")
    Set rngFindValue = .Find(what:=myitem, after:=[DI3], LookIn:=xlFormulas)
    rngFindValue.Select '~~> or do whatever you want with your found range
End With

答案 2 :(得分:0)

我在这里疯了!我无法理解我正在给出的错误消息。

Sub run_averages()

Dim x As Integer
Dim rngFindValue As Range
Dim rngFindstart As Range
Dim myitem As Integer

Set dd = ActiveSheet.DropDowns("thing_length")
Set aa = ActiveSheet.DropDowns("thing_date")


myitem = ActiveSheet.Cells(5, 1).Value

' using beans text to make sure error is not coming from drop down reference
Set rngFindValue = Range("E3:DI3").Find(What:="beans", After:=ActiveSheet.Range("E3"), LookIn:=xlFormulas)


With ActiveSheet
    .Range(.Cells(3, 1), .Cells(rngFindValue.Row, rngFindValue.Column)).Select

End With


End Sub

它告诉我“运行时错误91对象变量或没有设置块”如果rngFindValue是我正在使用的唯一对象,那么它已被创建的事实设置..

哪个对象不存在?

我显然缺少一些基本的东西。

感谢。

等待。我是个菜鸟。文档中没有“bean”文本,所以它给了我这个错误......