2016-03-28 4 views
-1

混乱しているタイトルのため申し訳ありませんが、私はVBAとマクロを初めて使用しています。私を助けてください。代替機能マクロのテキストを列名(たとえば列「AY」)に置き換える方法

私のワークブックには、1日の予測が列で、別の列には現在の日と前日の予測の差が記録されています。

現在のマクロは、相対参照を使用して記録され、新しい列を挿入し、現在の日の予測を新しい列にコピーしました。

私は、差分列(例えばBB10- AY 10)で、新しい列(BB10- AZ 10)に、しかし、記録されたマクロで式に代わる別のマクロを作成したい

これらのテキスト文字列は難しい値のようです。

VBA:

Sub Test() 
    ' Test Macro ' 
    ' ActiveCell.Offset(-8, -4).Range("A1").Select Selection.Copy ActiveCell.Offset(0, 1).Range("A1").Select 
    Application.CutCopyMode = False 
    Selection.Copy ActiveCell.Offset(0, 7).Columns("A:A").EntireColumn.Select 
    Selection.Replace What:="AY", Replacement:="AZ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
    ReplaceFormat:=False ActiveCell.Offset(10, -4).Range("A1").Select 
    Application.CutCopyMode = False 
End Sub 

これが解決取得する誰かが正しい方向に私を指すことができますか?

-PN

答えて

0

セル内の文字列を反復処理し、などの機能を置き換える使用します

For Each Cell In Selection 
    Cell.Value = Replace(Cell.Value, "AY", "AZ") 
Next Cell 

***** *****更新

設定しrngSrcあなたが望む列のセルに

Sub ReplaceText() 
    Dim rngSrc As Range: Set rngSrc = Range("AZ1") 
    Dim Adr As String: Adr = Right(rngSrc.Address, Len(rngSrc.Address) - 1) 
    Dim ColLetter As String: ColLetter = Left(Adr, InStr(Adr, "$") - 1) 
    For Each Cell In Selection 
     Cell.Formula = Replace(Cell.Formula, "AY", ColLetter) 
    Next Cell 
End Sub 
+0

申し訳ありませんが、私はもっと明確にすべきでした。ハードな値やテキスト(AZ)を、新しい列が何であっても置き換えたいと思います。だから、私は次の日に新しい列を作成すると言う、私は "現在の日対前日"の数式内の "BB"に "AZ"のテキストを切り替える必要があります。 私は大きなマクロにこれを実装しようとしているので、ユーザーはボタンを押して新しい日を設定するだけです。 – Paul

関連する問題