2012-04-30 25 views
10

Tôi có tệp Excel đang mở và sử dụng VB Script, tôi cần tìm cột "A" trong bảng Excel cho đến khi nó khớp với chuỗi văn bản. Khi kịch bản tìm thấy kết quả phù hợp, tôi muốn xem số hàng của ô nơi tìm thấy kết quả phù hợp. Cảm ơn sự giúp đỡ của bạn trước!Cách tìm số hàng của một giá trị cụ thể trong Excel bằng cách sử dụng vbscript

+1

Hiển thị mã bạn có cho đến nay - dễ dàng hơn để thêm vào đó hơn để đoán xem bạn thực sự có nghĩa là VBA hay vbscript. Như Doug đề cập, đôi khi họ được sử dụng để có nghĩa là cùng một điều. –

Trả lời

20

Đây là VBA để tìm trường hợp đầu tiên của "test2" trong cột A của bảng kích hoạt. Bạn có thể điều chỉnh chuỗi và trang tính phù hợp với nhu cầu của bạn. Nó chỉ được tính là một kết quả phù hợp nếu toàn bộ ô khớp với, ví dụ: "test2222" sẽ không khớp. Nếu bạn muốn, xóa, 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

Bạn có thể sử dụng cùng một định dạng cho vbscript không? –

+1

Tôi không biết. Vì thẻ của bạn bao gồm 'excel-vba', tôi đã cung cấp cho bạn mã đó. Đôi khi mọi người sử dụng "vbscript" và "vba" thay thế cho nhau. –

+2

@buri kuri Mã sẽ yêu cầu điều chỉnh đáng kể cho 'vbscript', tức là tự động hoá Excel, loại bỏ kích thước rõ ràng của biến, thêm hằng số cho' xlWhole' v.v. Bạn cần cụ thể hơn với những gì bạn muốn – brettdj

-2

Cảm ơn bạn đã lấy mẫu. Dưới đây là trong 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 cho: FSO không sử dụng,() khi gọi MsgBox làm phụ, hãy sử dụng Đặt cho chuỗi File_Path và WHAT_TO_FIND. –

Các vấn đề liên quan