2016-05-25 4 views
1

動作しない私がやりたいものです。range.replace方法は、ここで

  • col Aがのリストを収容され、sheet1sheet1
  • 中リストに従ってsheet15column Dに言葉を置き換えます言葉私は交換したい、と私はそれを交換したいと思い、対応する単語が(col Bで)その隣にあるコードの下

私は新しいワークブックでそれをしようとすると、正常に動作しますが、とき私はそれを私のプロジェクトに置いています。 私はそれを1行ずつデバッグしましたが、エラーはありませんが、それに応じてワードが置き換えられていません。

何が間違っているかわかりません。誰がここに誰が私が間違っていたか知っていますか?

sub changeproc()   
Dim fromVal As String, toVal As String, cel As Range, lr As Long 

With Sheet1 'validation list and replacement 
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row 
    For Each cel In .Range("A1:A1" & lr) 'ori list in col a 
     fromVal = cel.Value2 
     toVal = cel.Offset(0, 1).Value2 'replacement list in col b 
     'Sheet15.Range("D:D").Replace fromVal, toVal, xlWhole, , True 'replace at data sheet 

    Next 
End With 

End Sub 
+0

ないあなたの質問への答えが、 '.Range内の各セル画の場合(「A1:A1」&LR) .Range( "A1:A"&lr) 'には、' For Each Celでなければなりません。 – Mrig

答えて

1

コードは問題ありません。適切なシート名を使用してください。 VBAプロジェクトをチェックインするか、Sheets( "name_here")を使用していることを確認してください。

そして(おそらく、それは明らかだが、念のために:P)のコメントを解除し、この行: 'Sheet15.Range("D:D").Replace fromVal, toVal, xlWhole, , True 'replace at data sheet

+0

ああ....アポストロフィは私のコードにはありませんでした –

+0

ちょうど私が間違ったところを見つけました...置き換えリストを持っているシートはsheet1という名前です。実際vbaページのインデックスはsheet2.sillyです私.. –

関連する問題