2016-10-08 5 views
-5

Image added as example私は複数の機能を含むMS ExcelのVBAスクリプトを書いています。 私はこの時点で立ち往生しています。 -MSのためのVBAスクリプティング

私はこのデータを持つExcelを持っている場合、 "man"が始まり/中/最後に存在する(大文字と小文字を区別しない)値を選択し、それらの行に値を割り当てたいとします。

入力が

Serial Name 
1  superman 
2  spiderman 
3  Thor 
4  Hulk 
5  Captain America 
6  Mandrake 

エクセル出力リレーExcelは、次のようになります。

Serial Name    Found man 
1  superman   Hello 
2  spiderman   Hello 
3  Thor  
4  Hulk  
5  Captain America 
6  Mandrake   Hello 

それは他のさまざまな複雑さと機能を必要とするので、私は唯一のVBAスクリプトをしたいです。だから、Excelの式はしないでください。

Range.Find機能を試しましたが、次のセルに "Hello"を割り当てることができませんでした。

お手数をおかけしますようお願い申し上げます。

答えて

0

次のコードはすべての行をデータでループし、各行に対して単語 "man"がその文字列の内側にあるかどうかを確認します(Instr関数を使用)。

Sub FindMan() 

Dim FindString     As String 
Dim Sht       As Worksheet 

Dim LastRow      As Long 
Dim lRow      As Long 

' modify "Sheet1" to your sheet name 
Set Sht = ThisWorkbook.Sheets("Sheet1") 

With Sht 
    ' find last row in Column "B" 
    LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row 

    ' you can modify your searched word as you wish at the following line 
    FindString = "man" 

    ' loop through all rows with data in cells "B" 
    For lRow = 2 To LastRow 
     If InStr(1, .Cells(lRow, 2), FindString, vbTextCompare) > 0 Then 
      .Cells(lRow, 3).Value = "Hello" ' if found add "Hello" to the cell on the right > Column C 
     End If 
    Next lRow 

    ' add header title for Column C 
    .Cells(1, 3).Value = "Found man"  
End With 

End Sub 
+0

ありがとうございます! これは私が見ていたものです。コードをドットの削除(。)で実行しています。例: - LastRow = *ここでドットを削除*セル(Rows.Count、 "B").... – Prashant

関連する問題