gpt4 book ai didi

VBA UDF - 反向转置

转载 作者:行者123 更新时间:2023-12-04 20:31:58 27 4
gpt4 key购买 nike

我想创建一个反转默认 TRANSPOSE 函数顺序的 Excel 自定义函数。

为了简化我的问题,我主要是在 A1:C1 中转置数据,并以相反的顺序出现在 A2:A4 中,其中 A1 中的数据出现在 A4 中,B1 出现在 A3 中,C1 出现在 A2 中。

到目前为止,我已经创建了一个名为“Reverse”的函数,它围绕着默认的 TRANSPOSE 函数,看起来像这样:{Reverse(TRANSPOSE(A1:A3))}。

代码如下:

Function Reverse(SelectRange As Variant)

Dim InputArray() As Variant
Dim OutputArray() As Variant
Dim x As Integer
Dim y As Integer

InputArray() = SelectRange
ReDim OutputArray(1 To UBound(InputArray), 1)

For y = 1 To UBound(InputArray)
OutputArray(y, 1) = InputArray(UBound(InputArray) - y + 1, 1)
Next y

Reverse = OutputArray

End Function

但是,这会在 A2:A4 中输出 0,而不是所需的值。我已经使用即时窗口检查了 OutputArray 是否正确填充,但无论出于何种原因,它的值都没有出现。

最佳答案

OutputArray 的第二维包含两个索引 - 01 .您正在填充后者的值,而 Excel 会显示前者,因为您在单个列中输入了公式。

你想要ReDim OutputArray(1 To UBound(InputArray), 1 to 1) , 或 Option Base 1在模块的开头。

关于VBA UDF - 反向转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48813736/

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