gpt4 book ai didi

excel - 如何让 VBA 函数存储单元格地址值而不是这些单元格地址处的值

转载 作者:行者123 更新时间:2023-12-04 03:38:26 25 4
gpt4 key购买 nike

我知道这是一个非常不寻常的问题,您可能不明白我为什么要这样做,但是...

如果单元格 A1 中的值为 5,则会发生这种情况:

Myfunction(A1): 输出 5

在 vba 模块中:

Function Test(array As String)
Test=array
End function

我想要的示例:

Myfunction(A1): 输出字符串“A1”

或者

Myfunction(A1:B3): 输出字符串“A1:B3”

或者

Myfunction(A1:B3 & B5:B9): 输出字符串“A1:B3 & B5:B9”

如何让 vba 函数执行此操作。基本上我希望函数将单元格地址存储为字符串,而不是位于单元格地址位置的值。我知道当您将值输入到函数中时可以使用“A1:A4”或类似的东西,但这不是我想要的。这也是针对函数而不是子函数。

最佳答案

参数数组

Understanding parameter arrays

  • Excel 中,要选择多区域范围,请选择第一个范围,然后在选择下一个范围时按住 CTRL
  • Excel 中使用例如=RangeAddress(A1:A5,C3:C7,Z11:Z75)

代码

Option Explicit

Function RangeAddress( _
ParamArray rg() As Variant) _
As String
Dim arg As Variant
If UBound(rg) = 0 Then
RangeAddress = rg(0).Address(0, 0)
Else
Dim n As Long
For Each arg In rg
RangeAddress = RangeAddress & arg.Address(0, 0) & " & "
Next arg
RangeAddress = Left(RangeAddress, Len(RangeAddress) - 3)
End If
End Function

关于excel - 如何让 VBA 函数存储单元格地址值而不是这些单元格地址处的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66500456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com