gpt4 book ai didi

vba - 使用 vba 地址用工作表函数结果填充 Excel 范围

转载 作者:行者123 更新时间:2023-12-04 21:21:17 24 4
gpt4 key购买 nike

不知道如何准确地表达这个问题,所以我会让代码开始说话!

lROW = 10 ' 
Sheet1.Range("A1:A" & lROW).Formula = "=SUM(" & Cells(1, 2).Address & ":" & Cells(1, 3).Address & ")"

这会输入一个从 A1 到 A10 的公式,其中包含正确的行 ( =SUM(B1:C1))

然后我可以使用 Sheet1.Range("A1:A" & lROW).value2 = Sheet1.Range("A1:A" & lROW).value2 将其转换为值

无论如何我可以直接使用工作表函数跳过一步吗?我知道我可以使用某些范围地址执行此操作,但它不适用于例如:
Sheet1.Range("A1:A" & lROW).Value2 = _
Application.WorksheetFunction.Sum(Sheet1.Range(Cells(1, 2).Address(False, True) & ":" & Cells(1, 3).Address(False, True)))

我只是在 col A 的每一行中得到第 1 行的答案

即使我使用地址参数(假,真)来表示行上没有绝对引用......有没有办法一举做到这一点?

最佳答案

这应该这样做:

Dim ar As Variant
Dim rg As Range
Dim i As Long

Set rg = Sheet1.Range("A1:C10")

ar = rg.Value

For i = 1 To UBound(ar, 1)
ar(i, 1) = ar(i, 2) + ar(i, 3)
Next

rg.Columns(1).Value = ar

编辑

根据提问者的方法,我有不同的想法。这个简短而甜蜜的怎么样 - 不需要循环:
Dim rg As Range
Set rg = Sheet1.Range("A1:A10")
rg.FormulaR1C1 = "=sum(RC[1]:RC[2])"
rg.Value = rg.Value

甚至...
With Sheet1.Range("A1:A10")
.FormulaR1C1 = "=sum(RC[1]:RC[2])"
.Value = .Value
End With

关于vba - 使用 vba 地址用工作表函数结果填充 Excel 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48462572/

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