2017-07-12 3 views
0

私はワークシートを1つ持っているので、フィルタリングと抽出を行う必要があります。セルに1行のコンテンツを抽出します

列Qの下にあるセルの内部に複数の行のデータがある可能性があります。 MOで始まるときはいつでもLINEを抽出する必要があります。コラムQセルの

フォーマットは次のようになります。

例えばMO; 2017年6月1日;例; 123.4

は、具体的には、私はラインを抽出したいと思います:MOを、DATE、CONTENT、私にはわからないNUMBER

それは以来VBAでそれを行うことが可能です私は新しいプログラマーです。

ありがとうございました。

答えて

0

これで試してみてください...

Sub example() 


Dim y As Workbook 
Dim Value As Variant 
Dim cval As String 


Set y = ThisWorkbook 
lRow = y.Worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row 

For i = 1 To lRow 
cval = y.Worksheets("Sheet1").Range("A" & i) 

If cval Like "*" & MO & "*" Then 

POS = InStr(cval, "MO") 

lpos = InStr(POS, cval, "AC") 

tmp = lpos - POS 

fmsg = Mid(cval, POS, tmp) 

MsgBox fmsg 

End If 
Next i 

End Sub 
+0

Instrが最初のステップで私を助けてくれます。私は次の行の始まりが不確かなのはどうですか?私がそこにいる唯一のことは、次の行の最初の2文字は2つの大文字です。そして私は、MOで始まるすべての行を抽出したいと思います。私はどの2つの大文字を除外することが可能かわからない。しかし、とにかく、本当にありがとうございました。 – Ana

+0

3行目の始まりの手紙は「AC」だけでなく、異なっています。私は正しいですよ? –

+0

はいそれは異なっています – Ana

0

使用すると、任意のセルで、この式と、それはあなたの行の番号が表示されます:あなたは別のシートでそれをdusplayしたい場合

=MATCH("MO;*",Q:Q, 0) 

は、シートの名前でQ:Qの接頭辞:

=MATCH("MO;*", 'Sheet name'!Q:Q, 0) 
関連する問題