gpt4 book ai didi

vba - 如何返回 2 个值并对它们进行四舍五入? Excel VBA

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

我正在编写一个应该计算简单基础的代码,为了做到这一点,我必须使用我的函数返回 2 个值 - 最好在两个不同的列中。

Function FundacaoSimples(b, l, carga) As Variant

tensao = Sheets("Tabelas e Constantes").Range("tensao").Value

Dim area As Double
Dim Bs As Single
Dim Ls As Single
Dim Resultado(1 To 2) As String

If b = l Then
area = (1.1 * carga) / tensao
Bs = Sqr(area)
Ls = Bs
ElseIf b <> l Then
area = (1.1 * carga) / tensao
Bs = Sqr((2 * area) / 3)
Ls = (3 * Bs) / 2
End If

Resultado(1) = Round(Bs, 2)
Resultado(2) = Round(Ls, 2)

FundacaoSimples = (Resultado(1) & " / " & Resultado(2))

End Function

我使用此舍入只是为了获得四舍五入 2 位小数的值,例如:2,73 到 2,75; 0.89 至 0.90。我尝试使用 ActiveCells.Offset(0,1),但该语句无效。是否可以只向右跳一列?

最佳答案

您可以使用 ActiveCell.Offset(0, 1).value = SomeValue,但是 - 那是在编写常规 Sub 时。您正在编写一个函数/用户定义函数。

在 UDF 内,不可能更改不同的单元格。

但是,解决方法是使用 UDF,当将其输入到单元格中时,您可以使用 Worksheet_Change 事件来更改 Target 参数旁边的单元格该事件。

编辑:一些示例代码:

在常规模块中:

Public Function MyUDF(param1 as integer, param2 as integer) as Integer
MyUDF = param1 + param2
End Function

在您想要偏移的工作表中:

Private Sub Worksheet_Change(Byval Target as Range)
If Left(Target.Formula, 6) = "=MyUDF" Then
Target.Offset(0, 1).value = "somevalue at the offset cells"
End If
End Sub

关于vba - 如何返回 2 个值并对它们进行四舍五入? Excel VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44908163/

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