Vba 复杂字符串替换

Vba 复杂字符串替换,vba,excel,Vba,Excel,我有一些数据每周都会被提取出来,看起来很糟糕,所以我有一个格式表,可以将数据放在一个更友好、可读的格式中 不幸的是,管理层决定在原始数据中添加一列,这会将我的所有单元格引用抛出一列。这是我在单元格中的当前代码: =IF(([SPREADSHEETREF.xlsx]Raw1!AD3)=0,"-",([SPREADSHEETREF.xlsx]Raw1!AD3)) 我需要在当前引用中“添加”一列。因此,在上面的示例中,它将用AE3替换AD3 我正在考虑使用工作表function.Replace(旧文

我有一些数据每周都会被提取出来,看起来很糟糕,所以我有一个格式表,可以将数据放在一个更友好、可读的格式中

不幸的是,管理层决定在原始数据中添加一列,这会将我的所有单元格引用抛出一列。这是我在单元格中的当前代码:

=IF(([SPREADSHEETREF.xlsx]Raw1!AD3)=0,"-",([SPREADSHEETREF.xlsx]Raw1!AD3))
我需要在当前引用中“添加”一列。因此,在上面的示例中,它将用
AE3
替换
AD3

我正在考虑使用
工作表function.Replace(旧文本、开始、字符数、新文本)
,但我不确定它在这种情况下是否有效


我似乎不知道如何使
new_text
成为某种类型的增值,就像
OldValue+1=AE
。被引用的列到处都是,因此我需要灵活地使用+1公式来实现这一点。

以下函数将AD1转换为AE1:

Function ShiftAddress(CellAddress As String, Optional shift As Long = 1) As String
    Dim R As Range
    Set R = Range(CellAddress)
    ShiftAddress = R.Offset(0, shift).Address(False, False)
End Function

shiftadress(“AD1”)返回“AE1”。shiftadress(“AD1”,2)返回“AF1”,等等。

打开源和“格式化”工作簿后,在源工作表中插入一列。你的格式公式应该相应地调整。天哪。我不敢相信事情竟如此简单。诅咒你出类拔萃。