Excel VBA中的“查找”函数-对象不支持此属性或方法

Excel VBA中的“查找”函数-对象不支持此属性或方法,excel,vba,Excel,Vba,无法在一张工作表中运行查找功能 我想在所选范围内找到一些单元格值并将其着色。 我得到的错误是 对象不支持此属性或方法 子着色() 此工作簿.工作表(“VNF放置”).激活 变暗rg As范围 设置rg=ThisWorkbook.Sheets(“VNF放置”).范围(“B11:CV500”) lrow=ThisWorkbook.Sheets(“VNF放置”).Cells(Rows.count,105)。End(xlUp)。Row g=3'颜色指数 i=1 对于i=2至lrow 对于rg中的每个c

无法在一张工作表中运行查找功能

我想在所选范围内找到一些单元格值并将其着色。
我得到的错误是

对象不支持此属性或方法

子着色()
此工作簿.工作表(“VNF放置”).激活
变暗rg As范围
设置rg=ThisWorkbook.Sheets(“VNF放置”).范围(“B11:CV500”)
lrow=ThisWorkbook.Sheets(“VNF放置”).Cells(Rows.count,105)。End(xlUp)。Row
g=3'颜色指数
i=1
对于i=2至lrow
对于rg中的每个c
如果ThisWorkbook.Sheets(“VNF放置”).Find(单元格(i,105),xlValues)则
c、 Interior.ColorIndex=g
如果结束
下一个
g=g+1
下一个
端接头

您不应该像那样使用
,那是为了比较值
Find
是一个范围对象,返回找到的值的范围。另外,您需要指定查找的范围

例如:

Dim rslt As Range, i As Long, lrow As Long

With ThisWorkbook.Sheets("VNF Placement")

    lrow = .Cells(.Rows.Count, "A").End(xlUp).Row

    For i = 2 To lrow
        Set rslt = .Range("A:A").Find(.Cells(i, 105), Lookat:=xlPart)
        If not rslt Is Nothing Then 
            MsgBox "The address of '" & .Cells(i, 105).Value & "' is '" & rslt.Address & "'", vbInformation
        End If
    Next

End With

你不应该像
那样使用
,那是为了比较值
Find
是一个范围对象,返回找到的值的范围。另外,您需要指定查找的范围

例如:

Dim rslt As Range, i As Long, lrow As Long

With ThisWorkbook.Sheets("VNF Placement")

    lrow = .Cells(.Rows.Count, "A").End(xlUp).Row

    For i = 2 To lrow
        Set rslt = .Range("A:A").Find(.Cells(i, 105), Lookat:=xlPart)
        If not rslt Is Nothing Then 
            MsgBox "The address of '" & .Cells(i, 105).Value & "' is '" & rslt.Address & "'", vbInformation
        End If
    Next

End With

请看上面我写的完整代码。在我的项目的一个版本中,它运行良好。但不在此工作表中。@Ninja您的代码无法在任何版本的项目中工作。
工作表
没有名为
Find
的方法,您无法更改该方法。你在问题中的代码永远不会起作用。@Ninja很高兴你让它起作用了!如果我的回答对你有帮助,请接受:)在这种情况下,你可以回答你自己的问题,以备将来参考,但这完全是可选的。请参见上文,我已经编写了完整的代码。在我的项目的一个版本中,它运行良好。但不在此工作表中。@Ninja您的代码无法在任何版本的项目中工作。
工作表
没有名为
Find
的方法,您无法更改该方法。你在问题中的代码永远不会起作用。@Ninja很高兴你让它起作用了!如果我的回答对你有帮助,请接受:)在这种情况下,你可以回答你自己的问题以备将来参考,但那完全是可选的错误是不言自明的。
工作表
没有名为
Find
的方法。为什么要在另一个循环中循环?第二个循环根本没有用
这个工作簿.Sheets(“VNF放置”).Find(Cells(i,105),xlValues)
不是一个断言,它返回一个范围或什么都没有错误是不言自明的。
工作表
没有名为
Find
的方法。为什么要在另一个循环中循环?第二个循环根本没有用
thiswook.Sheets(“VNF-Placement”).Find(Cells(i,105),xlValues)
不是断言,它返回一个范围或什么都没有