0

Excel VBA でデータの列に対して簡単な操作を実行しようとしています。列 B のセルが「N」より前の文字で始まる場合、そのセルには何も起こりません。セルが文字 'N' 以降 (アルファベット) で始まる場合、セルの内容は "!!!!!" に置き換えられます。

これを別の列に正しく適用するコードは次のとおりです。

Range("C1", Range("C1").End(xlDown)).Value = "=IF(LEFT(A1,1)<""N"",B1,""!!!!!"")"

これは正常に機能し、列 C に正しい出力が含まれるようになります。ただし、列 B を置き換えるには、列 C をリテラル値に変換してから、列 B をすべて削除する必要があります。

これらの余分な手順は、少し不必要で面倒に思えます。値を別の列に割り当てて元の列 B を破棄することなく、式を列 B に直接適用する方法はありますか?

4

1 に答える 1

2

myRng を必要な行数に設定します。完全な列では機能しないようです。

Sub CaptainProgsSub()

Dim myRng As Range, cell As Range
Set myRng = Range("B1:B100")

For Each cell In myRng
    If Left(Range("B" & cell.row), 1) > "N" Then Range("B" & cell.row) = "!!!!!"
Next cell

End Sub
于 2012-10-24T11:15:21.533 に答える