Ho un file Excel aperto e utilizzo VB Script, ho bisogno di cercare solo la colonna "A" nel foglio di Excel finché non corrisponde a una stringa di testo. Quando lo script trova quella corrispondenza, mi piacerebbe vedere il numero di riga della cella in cui è stata trovata la corrispondenza. Grazie per i vostri aiuti in anticipo!Come trovare il numero di riga di un valore specifico in Excel utilizzando vbscript
risposta
Questo è VBA per trovare la prima istanza di "test2" nella colonna A del foglio di lavoro. Puoi adattare la corda e il foglio di lavoro alle tue esigenze. Conta solo come corrispondenza se l'intera cella corrisponde, ad esempio "test2222" non corrisponde. Se si desidera, rimuovere il, lookat:=xlWhole
bit:
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
Quindi puoi usare la stessa formattazione per vbscript? –
Non lo so. Dato che i tuoi tag includevano 'excel-vba' ti ho dato quel codice. A volte le persone usano "vbscript" e "vba" in modo intercambiabile. –
@buri kuri Il codice richiede un adattamento significativo per 'vbscript', vale a dire per automatizzare Excel, rimuovere il dimensionamento esplicito delle variabili, aggiungere costanti per' xlWhole' ecc. Devi essere più specifico su ciò che vuoi – brettdj
Grazie per il campione. Sotto è in 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 per: FSO inutilizzato,() quando si chiama MsgBox come sub, utilizzare Set per stringhe File_Path e WHAT_TO_FIND. –
Mostra il codice che hai finora - più facile da aggiungere a quello che a indovinare se intendi davvero VBA o vbscript. Come dice Doug, a volte sono usati per indicare la stessa cosa. –