Вопрос по vbscript, excel – Как найти номер строки определенного значения в Excel, используя vbscript

10

У меня есть открытый файл Excel и, используя VB Script, мне нужно искать только столбец & quot; A & quot; в листе Excel, пока он не совпадет с текстовой строкой. Когда скрипт находит это совпадение, я хотел бы увидеть номер строки ячейки, в которой было найдено совпадение. Спасибо за вашу помощь заранее!

Покажите код, который у вас есть - добавить к нему проще, чем угадать, действительно ли вы имеете в виду VBA или vbscript. Как упоминает Дуг, иногда они означают одно и то же. Tim Williams

Ваш Ответ

2   ответа
20

Это VBA, чтобы найти первый экземпляр "test2" в столбце A активного листа. Вы можете настроить строку и рабочий лист в соответствии с вашими потребностями. Совпадение учитывается только в случае совпадения всей ячейки, например, «test2222». не будет совпадать. Если вы хотите, удалите,lookat:=xlWhole немного:

Sub FindFirstInstance()
Const WHAT_TO_FIND As String = "test2"
Dim ws As Excel.Worksheet
Dim FoundCell As Excel.Range

Set ws = ActiveSheet
Set FoundCell = ws.Range("A:A").Find(what:=WHAT_TO_FIND, lookat:=xlWhole)
If Not FoundCell Is Nothing Then
    MsgBox (WHAT_TO_FIND & " found in row: " & FoundCell.Row)
Else
    MsgBox (WHAT_TO_FIND & " not found")
End If
End Sub
+1 Дуг :) +1 Бреттдж
Я не знаю. Так как ваши теги включеныexcel-vba Я дал тебе этот код. Иногда люди используют & quot; vbscript & quot; и "VBA"; взаимозаменяемые.
Привет друзья, я решил проблему поиска, используя решение Дуга, и вот еще одна проблема. Когда я пытаюсь найти "1/1/2011" из столбца A выводится «11/11/2011» номер строки, с которой я не хочу совпадать. Как я могу поддерживать точное соответствие для символов? Кстати, я использовал vbscript и вот строка - & gt; Установите FoundCell = objSheet.Range (& quot; A: A & quot;). Find (& quot; 1/1/2011 & quot;) buri kuri
Так вы можете использовать то же форматирование для VBScript? buri kuri
@buri kuri Код потребует значительной адаптации дляvbscriptдля автоматизации Excel, удаления явных размеров переменных, добавления констант дляxlWhole и т.д. Вы должны быть более конкретными относительно того, что вы хотите
-2

Спасибо за образец. Ниже это в VBScript

Dim FSO, oExcel, oData, FoundCell, WHAT_TO_FIND, File_Path

WHAT_TO_FIND = "Report Summary"
File_Path = "\\[Server]\[Drive$]\[Folder]\Data.xls"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set oExcel = CreateObject("Excel.Application")
Set oData = oExcel.Workbooks.Open(File_Path)

Set FoundCell = oData.Worksheets("Sheet1").Range("A4:A20000").Find(WHAT_TO_FIND)
If Not FoundCell Is Nothing Then
  MsgBox (WHAT_TO_FIND & " found in row: " & FoundCell.Row)
Else
  MsgBox (WHAT_TO_FIND & " not found")
End If

Set File_Path = nothing
Set WHAT_TO_FIND = nothing
Set FoundCell = nothing
Set oData = Nothing
Set oExcel = Nothing
Set FSO = Nothing
-1 for: неиспользованный FSO, () при вызове MsgBox в качестве Sub, используйте Set для строк File_Path и WHAT_TO_FIND.

Похожие вопросы