複数の列になるスプレッドシートデータがありますが、列数はエントリ数に応じて1から8まで変化します。私はこの形式で同じ2文字で始まるいくつかのエントリを持っています:CF 12456これらのうちの1つ、またはこれらの多くの "CF 12345"が存在することがあります。 (すなわち、6列のデータがある場合、「CF12345」列は列6の右側にあるはずである)新しい列に「CF12345」のセルを挿入する。このコードは、すべての "CF 12345"を列Iに移動することを除いてすべてのことを行います(はい、私はそのコードが実行するように指示しているためです)。ここでは、コードは次のとおり使用される範囲のパターンに一致する各見つかったセルの列にVBAマクロ条件に基づいてセルを次の列の先頭に移動
Sub DiscrepancyReportMacroStepTwo()
'Step 4: Find CF cells move to the top of their own column
Dim rngA As Range
Dim cell As Range
Set rngA = Sheets("Sheet1").Range("A2:H500")
For Each cell In rngA
If cell.Value Like "*CF*" Then
cell.Copy cell.Offset(0, 1)
cell.Clear
End If
Next cell
End Sub
ありがとう:あなたは数字の#を知っているが、それは2と5桁の数字の間になるだろう知っていない場合は、に正規表現パターンを変更することができます。コードは素晴らしいですが、私はすべての "CF *"を新しい列に移動したいと思います。あなたのコードは "CF"を現在の列の先頭に移動させます。すべてのCFをCFの最後の列に移動し、そこにCFだけが入るようにします。 –
CF値は、常にデータの最後の列の終わりになります。私は基本的には、これらのCF値を新しい列(右の最後の列、すなわち1 2 3 4 5の5桁のCF値が必要です)にカット/ペーストしたいとします。 –
@JasonKeithMcCoy編集の新しいコードは、それを達成する。しかし、単純に保つために 'CF *'のみにマッチすることに注意してください。数字の後にveriffyをつけないでください。単純なまま 'Regexp'を避けますが、その要件が強い場合は)次に、いくつかの 'Regexp'を追加する必要があります(つまり、他の答えと同じです)。 –