我如何在Excel工作表中找到一个字符串值。
我正在尝试objRange.Find(),但这也给了我错误的地址。作为示例,我想要'Object_paint'的地址,但它也提供了'Object_paint_and_stk'的地址。

我应该只获得确切的值(value)吗?

Set objWorksheet = objWorkbook.Worksheets(worksheet)
Set objRange = objWorksheet.Range("B2:B600")
Set objFind = objRange.Find("object_paint")

If Not objFind Is Nothing Then
    searchValue = objFind.AddressLocal(False, False)
end if

最佳答案

的第一击

excel range.find exact match site:microsoft.com

是:

Range.Find

在那里你找到



并遵循LookAt link,您将看到:
xlPart  Match against any part of the search text.
xlWhole Match against the whole of the search text.

顺便说一句:objTarget是谁?

更新:

您必须将您在对VBScript的评论中提到的VBA代码片段“移植”(一些提示here):
Option Explicit

' Define Excel Consts unknown to VBScript
Const xlPart  = 2
Const xlWhole = 1

Dim oExcel : Set oExcel = CreateObject("Excel.Application")
Dim oWBook : Set oWBook = oExcel.Workbooks.Open("M:\lib\kurs0705\testdata\ut.xls")
Dim oRange : Set oRange = oWBook.Sheets("NewSheet").Range("A1:A11")
' translate named args to positional args
' expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte)
Dim oFnd1  : Set oFnd1  = oRange.Find("Title1", , , xlPart)
WScript.Echo TypeName(oFnd1), CStr(oFnd1)
Dim oFnd2  : Set oFnd2  = oRange.Find("Title1", , , xlWhole)
WScript.Echo TypeName(oFnd2), CStr(oFnd2)

oWBook.Close
oExcel.Quit

输出:
cscript excelfind.vbs
Range Title10
Range Title1

10-02 00:54