2012-04-30 2 views
10

열린 Excel 파일이 있고 VB 스크립트를 사용하는 경우 Excel 시트에서 텍스트 문자열과 일치 할 때까지 "A"열만 검색해야합니다. 스크립트가 일치하는 것을 발견하면 일치 항목이있는 셀의 행 번호를보고 싶습니다. 미리 도움을 주셔서 감사합니다!vbscript를 사용하여 Excel에서 특정 값의 행 번호를 찾는 방법

+1

VBA 또는 VBScript를 실제로 의미하는지 여부를 추측하는 것보다 쉽게 ​​추가 할 수있는 코드를 표시하십시오. 더그 (Doug)가 언급했듯이, 때때로 같은 것을 의미하기도합니다. –

답변

20

액티브 시트의 A 열에서 "test2"의 첫 번째 인스턴스를 찾는 VBA입니다. 필요에 따라 문자열과 워크 시트를 조정할 수 있습니다. 전체 셀이 일치하는 경우에만 일치로 계산됩니다 (예 : '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 
+0

그래서 vbscript에 동일한 서식을 사용할 수 있습니까? –

+1

잘 모르겠습니다. 귀하의 태그에는'excel-vba'가 포함되어 있으므로 그 코드를 알려주었습니다. 때때로 사람들은 "vbscript"와 "vba"를 같은 의미로 사용합니다. –

+2

@buri kuri이 코드는 'vbscript '에 대한 상당한 수정이 필요합니다. 즉, Excel 자동화, 변수의 명시 적 치수 제거,'xlWhole'에 대한 상수 추가 등입니다. 원하는 것에 관해서는 더 구체적으로 설명해야합니다. – brettdj

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

-1 for : 사용하지 않은 FSO,() MsgBox를 Sub로 호출 할 때 문자열 File_Path 및 WHAT_TO_FIND에 Set을 사용합니다. –

관련 문제