2017-10-03 9 views
0

excel vbaの範囲(ソース)の値を変更して別の範囲(宛先)に変更したいとします。スラッシュはソースによって異なる場合がありますのでご注意ください。例えばexcel vbaの範囲の値を変更する方法

私はこのようにやってみたいけど、VBAからエクセル: enter image description here

pseduコード:

ThisWorkbook.Sheets( "シート1")範囲(A1、A4).Valueの=を。直前のフォワードの前のソース文字列を変数に置き換えます。

変数=「C:デスティネーション\」

基本的に私は、Sourceの値を修正し、先にペーストしたいのです。

このコードはなく(宛先

ThisWorkbook.Sheets( "シート1")。範囲(A1、A4).Valueの= ThisWorkbook.Sheets( "シート1")。範囲ソースから同じ値を貼り付け作品B1、B4)。値

VBAの新機能をお役立てください。

答えて

2

私は質問を誤解していない限り、これはあなたがしようとしていることを達成することができます。

最初の列に移入されたセルの範囲をカウントしてループ最大反復回数として設定すると、さらに改善できます。ヘッダは、私の場合ソース=「で、colAにおけるセルリスト」で最後?コードの変更がどうなるか、その後がある場合

Dim Str As String 
Dim Source As String 
Dim Destination As String 
Dim populated As Integer 

Source = "C:\Source\" 
Destination = "D:\Destination\" 

N = Cells(Rows.Count, "A").End(xlUp).Row 

For i = 1 To N 
    Str = Cells(i, 1).Value 
    Cells(i, 2).Value = Replace(Str, Source, Destination) 
Next i 
+0

先(COLB)がないchanging.Alsoコードを助けてください。 – shaadi

+0

ヘッダーがある場合は、1ではなく2からループカウントを開始します。これは、ある段階で変更があった場合に、変数としてDestinationを宣言しただけです。代入変数を渡すのではなく、Replace関数でハードコードすることができます。 – Jesse

+0

ありがとうございますが、コードを置換する機能が動作しません。宛先またはソースをパス(C:\ Source \)に設定しても動作しません。ハードコード文字列のようなソースまたは宛先の代わりに:Cells(i、2).Value = Replace(Str、 "Source"、 "Destination") – shaadi

関連する問題