答案1
直接回答:
可以使用 =AG&"6+5" 或类似的语法来完成此类事情吗?
将会:
=Indirect("ag"&6+5)
如果你删除或添加行或列,则此项将不会更新
你也可以使用:
=Indirect(Address(Row(AG6)+5,Col(AG6)))
或者
=INDIRECT(ADDRESS(6+5,33))
如果您删除或添加行或列,最后一个将不会更新
上面的例子使用的是 Google Sheets,但应该也适用于 Excel
尽管如果您想要的是一次性更改大量单元格,这可以通过宏或自定义外部程序来实现,这些程序可以读取工作簿并更改相应的单元格引用,但如果您的最终目标只是拥有,那么两者都应该返回更漂亮的解决方案=AG11
。
以下是在 OpenOffice 中如何工作的示例:
Sub Main
Dim sheet As Object
sheet = ThisComponent.CurrentController.ActiveSheet
For i = 1 To 5
Dim formula As String
Dim address As New com.sun.star.table.CellAddress
Dim cellName As String
formula = sheet.getCellRangeByName("B" & i).Formula
address = sheet.getCellRangeByName(Right(formula, Len(formula)-1)).getCellAddress()
cellName = Chr(address.Column + 65) & (address.Row+2)
sheet.getCellRangeByName("B" & i).Formula = "=" & cellName
Next i
End Sub
到:
我无法分享 Excel 中的宏示例,因为我并不拥有它,我可以做一个外部程序示例,但它可能超出了这个问题的范围。