|
▼ponpon さん、超初心者SSさん、こんばんは。
検索したい文字列が二つは、必ず、一部が含まれている
(本---本数、品---品数、証---証拠のように)のであれば、
ponpon さんの方法がよさそうですね。
以下のコードはA列のデータをB列とC列に分割し、
最終的にA列を削除するコードです。
'======================================================
Sub main()
Dim 検索1 As String
Dim 検索2 As String
検索1 = "本"
検索2 = "本数"
wk = 検索1
If Len(検索1) < Len(検索2) Then
検索1 = 検索2
検索2 = wk
End If
Dim rng As Range
Set rng = Range("a2", Cells(Rows.Count, 1).End(xlUp))
With rng
If .Row > 1 Then
With .Offset(0, 1).Resize(, 2)
.Formula = _
Array("=IF(ISERROR(FIND(""" & 検索1 _
& """,A2)),SUBSTITUTE(A2,""" & 検索2 & _
""",""""),SUBSTITUTE(A2,""" & _
検索1 & """,""""))", _
"=IF(ISERROR(FIND(""" & 検索1 & _
""",A2)),IF(A2=B2,"""",""" & 検索2 _
& """),""" & 検索1 & """)")
'B列には、
' =IF(ISERROR(FIND("本数",A2)),SUBSTITUTE(A2,"本",""),SUBSTITUTE(A2,"本数",""))
'C列には
'=IF(ISERROR(FIND("本数",A2)),IF(A2=B2,"","本"),"本数")
'この例では、上記のような数式が入る
.Value = .Value
End With
Range("a:a").Delete
End If
End With
End Sub
確認してください。
|
|