2016-09-08 3 views
0

プログラミングに優れており、いくつかのステートメントと条件を試しています。列内の行を反復して条件のチェックを行います。

Col. A Col. B Col. C 
    03  1   1 
    02  0   0 

何を達成しようとしていますが、列Aが03を持っている場合、それは言うべき他の「コム」を言って(新しい列が最後に追加されなければならない)ということであるのリテール:私は、次の形式のExcelシートを持っています'私は瞬間に次のコードを持っています:

For Each rngCell in Range("O:O") 
    If rngCell.value = "03" 
     rngCell.value = "Comm" 
    Else 
     rngCell.value = "Retail" 
    End If 
Next 

誰かがコードを手伝ってくれますか?

コード更新

+1

あなたのコードはあなたの説明の反対をしています。それが誤植であろうとなかろうと、CommとRetailを切り替えたいと思っています。次に、ループしている範囲に存在するセルの値を変更しているため、セルの値が置き換えられます。 – PartyHatPanda

+0

"Comm"と "Retail"の値を別のワークブックに入れたいのですか?または別の列にあるだけですか? – Jordan

+0

あなたのコードはあなたの物語に沿っていません。 –

答えて

0

あなたは確かに正しい道にあります。私は、この文脈では「デフォルト」のプロパティであると信じて、それはより良い安全です

For Each rngCell in Range("O:O").Cells 

:私はあなたが反復され、その上に範囲のプロパティは、それが似.cellsコレクションだであることをごFOR EACHループに指定することをお勧め残念ながら、レンジには「エリア」があり、そのエリアにはセルがあり、あなたはいつか間違ったことを繰り返すことになるかもしれません。

あなたがオンになっているセル/範囲に基づいて別のセルの値を設定するには、オフセットを使用することができます。

For Each rngCell in Range("O:O") 
    If rngCell.value = "03" 
     rngCell.offset(0,3).value = "Comm" 
    Else 
     rngCell.offset(0,3).value = "Retail" 
    End If 
Next 

ます。またrngCellの行を参照し、あなた自身のコラム供給できる:

For Each rngCell in Range("O:O") 
    If rngCell.value = "03" 
     Range("R" & rngCell.Row).value = "Comm" 
    Else 
     Range("R" & rngCell.Row).value = "Retail" 
    End If 
Next 
関連する問題