2012-04-30 17 views
10

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

+1

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. –

risposta

20

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 
+0

Quindi puoi usare la stessa formattazione per vbscript? –

+1

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. –

+2

@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

-2

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 
+2

-1 per: FSO inutilizzato,() quando si chiama MsgBox come sub, utilizzare Set per stringhe File_Path e WHAT_TO_FIND. –

Problemi correlati