2012-04-30 26 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を使用します。 –

関連する問題