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
Trả lời
Đâ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
Bạn có thể sử dụng cùng một định dạng cho vbscript không? –
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. –
@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
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
-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. –
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. –