我想创建INDIRECT()的UDF替代方案

时间:2017-02-24 10:30:58

标签: volatile udf excel-indirect

由于indirect()是volatile,除了在我的文件中使用indirect之外别无其他方法,我需要创建一个UDF等价/替代间接。

就我而言:

INDIRECTVBA(ref_text As String, Optional active_A1 As Boolean) As String
If active_A1 = False Then
    ref_text = "=" & ref_text
    ref_text = Application.ConvertFormula(Formula:=ref_text, fromReferenceStyle:=xlR1C1, toReferenceStyle:=xlA1)
    INDIRECTVBA = Range(ref_text)
Else
    INDIRECTVBA = Range(ref_text)
End If
End Function

此时,我能够管理:

  • A1和R1C1默认输入A1格式,
  • 在同一张纸上,
  • 有没有工作表的名称。

我一直在谷歌上几个小时,去那里......

我最后的需要是处理范围,例如:

  • A1:B2 as ref_text => INDIRECTVBA(" A1:B2")应返回范围为A1:B2
  • R1C1:R2C3 as ref_text

感谢您的时间,

0 个答案:

没有答案