gpt4 book ai didi

variables - 带变量的 Excel VBA 公式

转载 作者:行者123 更新时间:2023-12-04 02:40:20 25 4
gpt4 key购买 nike

我想在我的代码中生成一个公式,例如,

 Range("L2:L17).Formula="=SUMIF($A$2:$A$17,A2,G2:G17)"

除此之外,我希望 L、G 和 A 是由宏中较早的一些其他因素决定的变量。同样的,我也想把2、17换成两个变量,具体取值在代码前面已经确定了。

有点像

Range("var1 j: var1 k).Formula="=SUMIF($ var2 $ j : $ var2 $ k, var2 j, var3 j : var3 k)"

我想我可以将这些变量转换为字符串,然后再转换为字符串连接,但我现在还做不到。我尝试的一切都会出错。

Range(foldtot_add & "2:"& foldtot_add & FinalRow).Formula="=SUMIF("$"&FolderId_add & "$2:" & "$"& FolderId_add & FinalRow, FolderId_add &" 2", daycountcol2 & "2 :" & daycountcol2 & FinalRow)"

其中 foldtot_add、FolderId_add 和 daycountcol2 是我的列的名称,FinalRow 是行的名称。

最佳答案

如果您也需要列变量,您可以使用行号和列号引用单元格;然后,获取地址并将其填充到您的公式中。下面的示例设置行开始、行结束和列号,然后获取每个范围的地址

Dim rowStart as Integer
Dim rowEnd as Integer
Dim firstCol as Integer
Dim secondCol as Integer
Dim thirdCol as Integer
Dim aAddress as String
Dim gAddress as String
Dim lAddress as String
Dim aCell as String


rowStart = 2
rowEnd = 17
firstCol = 1
secondCol = 7
thirdCol = 12

' This gives you "$A$2:$A$17"
aAddress = Cells(rowStart, firstCol).Address & ":" & _
Cells(rowEnd, firstCol).Address

' This gives you "G2:G17"
gAddress = Cells(rowStart, secondCol).Address & ":" & _
Cells(rowEnd, secondCol).Address(RowAbsolute:=False, _
ColumnAbsolute:=False)

' This gives you "L2:L17"
lAddress = Cells(rowStart, thirdCol).Address & ":" & _
Cells(rowEnd, thirdCol).Address(RowAbsolute:=False, _
ColumnAbsolute:=False)

' This gives you "A2"
aCell = Cells(rowStart, firstCol).Address(RowAbsolute:=False, _
ColumnAbsolute:=False)

' Build the formula to insert in the cells
Range(lAddress).Formula = "=SUMIF(" & aAddress & "," & _
aCell & "," & gAddress & ")"

从这里开始,您可以编写一个循环或一些其他增量代码来根据您的需要更改行号/列号变量。

关于variables - 带变量的 Excel VBA 公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052930/

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