首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Excel公式中可变的术语数?

Excel公式中可变的术语数?
EN

Stack Overflow用户
提问于 2015-12-01 10:43:01
回答 2查看 569关注 0票数 4

是否有可能在VBA中为excel编写一个公式,使公式中有"n“项,并且随着"n”值的变化而改变术语的数目?

例如,假设您希望对单元格a1进行编码,使其成为a2和a3之和。然后,您希望b1是b2、b3、b4、b5等的总和,这样,每个单元格范围内的每列1行1单元格都是"n“单元格以下的"n”单元格之和,其中“n”随列而异。假设要使用的所有单元格地址都是已知的,并存储在数组中。

下面是一些代码,以更好地解释我的要求:

代码语言:javascript
运行
AI代码解释
复制
For i = 0 to n
   Range(arr1(i)).formula = "=" & range(arr2(i)).value & "-(" _
   & Range(arrk(i)).value & "+" & Range(arrk+1(i)).value & "+" _
   & Range(arrk+2(i)).value & "+" & ... & ")"
Next i

所以我要找的是一段VBA代码,它可以使一个单元格公式包含一个动态的术语。上面的代码将使单元格A1的值=a-(b+c+d+.)如果括号中的术语数是可变的,则取决于应用公式的单元格。

这里的图片展示了一个我想做的事情的例子。我想要一些代码,可以使用“年收入”,并从其中减去可变的“费用”,每年的费用数量都会变化(但是该年的费用数量是固定的)。代码需要使用公式,以便用户可以修改费用条目。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-02 08:03:19

谢谢大家的建议,今天我找到了一个解决难题的方法(不是一个特别有效的解决方案,但仍然是一个解决方案)。

首先,我创建了一个数组,它使用垃圾单元的“模式”来列出要包含的每个单元地址。

对于这个数组,我使用一个for循环来使用application.index命令创建一系列临时数组。对于每个临时数组,我使用Join命令将单元格列表转换为一个字符串,然后输入到一个单元格公式中。感谢@thepiyush13,他的array.formula方法启发了这一点。

下面是一些示例代码来展示我所做的事情:

代码语言:javascript
运行
AI代码解释
复制
' hypothetical array containing two sets of cells to use
Dim array1(0 To 1, 0 To 1) As Variant
Dim vartemp As Variant
Dim vartemptransposed As Variant

' col 1 will be used to add I10 and I13, col2 I11 and I14
array1(0, 0) = "$I$10"
array1(1, 0) = "$I$13"
array1(0, 1) = "$I$11"
array1(1, 1) = "$I$14"

For i = 1 to 2

'application.index(arr,row#,col#) to create a new array 
vartemp = Application.Index(array1, 0, i)
'error if not transposed
vartemptransposed = Application.Transpose(vartemp)

randomstring = Join(vartemptransposed, ",")
totalvalue = 100

'example formula: a1 = totalvalue - sum(I10,I13). a2 = totalvalue - sum(I11,I14)
    Cells(1,i).formula = "=" & totalvalue & "-SUM(" & randomstring & ")"
Next i

我需要代码在大列表上运行这么多次,这些列表是动态生成的,但始终保持着“垃圾单元”所在位置的相同模式。没有包含在代码中,但我还使用了另一个数组作为放置公式的单元格地址。

票数 0
EN

Stack Overflow用户

发布于 2015-12-01 13:22:42

你试过数组公式吗?:

数组公式:对一个或多个值集(“数组参数”)执行多个计算,并返回一个或多个结果。

详细信息:http://www.excelfunctions.net/Excel-Array-Formulas.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34027729

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文