对于令人困惑的标题感到抱歉, 我是VBA和宏的新手,我找不到任何可以帮助我的替换线程。
我的工作簿按列保存每日预测,另外一列会跟踪当前日期与前一天预测之间的差异。
使用相对引用记录我当前的宏以插入新列,并将当前预测值复制到新列。
我希望创建另一个宏,然后将差异列中的公式(例如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 :(得分: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