0

列 C に大量のテキストがあり、その一部を抽出するだけで済みます。Excelでもできますが、VBAでやりたいです。これが私がExcelで行う方法です

=MID(C2,FIND("IAV",C2)+6,11)

以下は、3 つのセルに含まれる情報のスニペットです (行で分割されています)。

CVE: CVE-2013-3378

入札価格: 60681

Crossref: OSVDB #94438、IAVA #2013-A-0126

脆弱性公開日: 2013/06/19

パッチ公開日: 2013/06/19

プラグイン公開日: 2013/07/24


CPE: cpe:/o:microsoft:windows cpe:/a:microsoft:silverlight

CVE: CVE-2013-3896

入札価格: 62793

相互参照: OSVDB #98223、MSFT #MS13-087、IAVB #2013-B-0117

脆弱性公開日: 2013/10/08

パッチ公開日: 2013/10/08


入札価格: 25628

相互参照: OSVDB #34600、OSVDB #43371、IAVT #2008-T-0046、CWE #20

脆弱性公開日: 2007/09/05

パッチ公開日: 2007/09/05

プラグイン公開日: 2011/10/04


私の目標は、IAVA #、IAVB #、および IAVT # に続くものをすべて抽出することです。だから私は2013-A-0126 2013-B-0117 2008-T-0046だけが残っています

4

2 に答える 2

0

私はごまかして、「IAV」を検索し、文字列の先頭を見つけるために 6 文字を追加できると思い込みました。また、列番号は変数として設定されます。

Sub Test()
Dim ColNumber As Integer
ColNumber = 3 'Set the column you wish to run on

Worksheets("Sheet1").Activate
LastCell = Cells(Worksheets("Sheet1").Rows.Count, ColNumber).End(xlUp).Row

For TheRow = 1 To LastCell
Worksheets("Sheet1").Cells(TheRow, ColNumber + 1).Value = Mid(Worksheets("Sheet1").Cells(TheRow, ColNumber).Value,    InStr(Worksheets("Sheet1").Cells(TheRow, ColNumber).Value, "IAV") + 6, 11)
Next

End Sub
于 2013-10-23T16:52:54.910 に答える