0

特定の部分だけを抽出したいセルの情報があります。CR で区切られたセル内に行があります。

例えば。:

This is line 1
This is line 2
How Are you??
That is line 3
---------------------------
this is line 4
that is line 8
I want this line too

上記はすべてセル内にあります。そして、THISまたは-----またはHowで始まらない行のみを抽出したいと思います

それが3行目で8行目この行も欲しい

したがって、VBAまたはマクロを実行すると、3行になります。

各文は一定ではありません。つまり、任意の長さの単語である可能性がありますが、切り捨てたい単語の最初の単語は一定です。つまり、This または That のいずれかで始まります。私が保持したいものは、ユーザーがキーインするオープンフィールドであるため、通常は一定ではありません。

だから、 --- または This or That で始まる行を切り捨てたいのですが、それ以外はそのままにしておきます。

そして、これはセルの全範囲を対象としています。A1からA100まで。

私が提供した情報で十分であることを願っています。

乾杯ジェフリー

4

2 に答える 2

2
      Dim Arr(), FinalResult,count
range("A1").Select

for count=1 to 100
      Arr = Split(ActiveCell, vbLf)

      Dim i ,j
      For each i in Arr
          j=Mid(i,1,4)
           if Not ( j="This" or j= "this" or j= "That" or j="that" or j="----") then
              FinalResult=FinalResult & i & VbLf
           End If

      Next

      MsgBox FinalResult
Activecell.offset(1,0).select
next
于 2013-03-14T04:34:22.947 に答える
0

1 つのセルの例を次に示します。2 番目のコメントで述べたように、対象範囲内の各セルにループすることができます。結果の文字列をどうするかもあなた次第です。

Public Sub GetThisAndThatLines()

  Dim sText() As String
  Dim sResult As String

  sText = Split(Selection.Text, vbLf)

  Dim i As Integer
  For i = 0 To UBound(sText)

      If LCase(Left(sText(i), 4)) = "this" Then
          sResult = sResult + sText(i) & vbCrLf
      ElseIf LCase(Left(sText(i), 4)) = "that" Then
          sResult = sResult + sText(i) & vbCrLf
      End If

  Next

  MsgBox sResult

End Sub
于 2013-03-13T23:33:43.623 に答える