2012-04-30 30 views
10

Tengo un archivo abierto de Excel y usando VB Script, necesito buscar solo la columna "A" en la hoja de Excel hasta que coincida con una cadena de texto. Cuando el guión encuentre esa coincidencia, me gustaría ver el número de fila de la celda donde se encontró la coincidencia. ¡Gracias por su ayuda con anticipación!Cómo encontrar el número de fila de un valor específico en Excel usando vbscript

+1

Muestra el código que tiene hasta ahora, más fácil de añadir a eso que adivinar si realmente quiere decir VBA o vbscript. Como Doug menciona, a veces se usan para significar lo mismo. –

Respuesta

20

Esto es VBA para encontrar la primera instancia de "test2" en la columna A de la hoja de trabajo. Puede ajustar la cadena y el acuerdo de la hoja de trabajo según sus necesidades. Solo cuenta como una coincidencia si la celda completa coincide, por ejemplo, "test2222" no coincidirá. Si usted quiere que, retire el, lookat:=xlWhole bits:

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

¿Entonces puede usar el mismo formato para vbscript? –

+1

No lo sé. Como sus etiquetas incluían 'excel-vba', le di ese código. Algunas veces las personas usan "vbscript" y "vba" de manera intercambiable. –

+2

@buri kuri El código requeriría una adaptación significativa para 'vbscript', es decir, para automatizar Excel, eliminar el dimensionamiento explícito de variables, agregar constantes para' xlWhole', etc. Debe ser más específico en cuanto a lo que quiere – brettdj

-2

Gracias por la muestra. Debajo está en 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 para: FSO no utilizado,() cuando se llama a MsgBox como Sub, use Establecer para cadenas File_Path y WHAT_TO_FIND. –

Cuestiones relacionadas