首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环遍历一系列单元格,将数据输入其他单元格(下拉选择)并返回计算结果。

循环遍历一系列单元格,将数据输入其他单元格(下拉选择)并返回计算结果。
EN

Stack Overflow用户
提问于 2010-01-20 16:17:10
回答 1查看 2.5K关注 0票数 0

我有一个内置在Excel 2003中的计算器,在该计算器中,您可以从下拉菜单中选择选项,然后收集和计算数据,返回生成该项目包的总成本。我想要的是循环通过这个下降的所有组合,并自动将总单位成本返回给另一个单元。

我已经创建了一个巨大的网格,在一个单独的工作表中输入了所有可能的下拉选择。这里是一个例子,它的一个迭代,但很明显,这需要循环和单元格引用需要抵消移动。

题为“成本计算器”的工作表的

  • 单元格值需要=题为“成本”的工作表中题为“成本计算器”的E9的G1单元格值,题为“成本计算器”的工作表的E9单元值需要=题为“成本计算器”的工作表中题为“成本”
  • 单元值的工作表的A2单元值,该工作表中题为“成本计算器”的工作表的单元值需要=题为“成本计算器”的工作表的B2单元格值。题为“费用”的工作表中题为“成本计算器”的工作表的
  • 单元值需要=题为“成本计算器”的工作表中题为“成本”的D2单元格值,题为“成本计算器”的工作表中题为“成本计算器”的工作表的
  • 单元值需要=题为“成本”的工作表的单元格值
  • ,然后计算出题为“成本计算器”的工作表的单元格值需要复制,并将值粘贴到题为“成本”的工作表的G2中。

然后,完全相同的事情需要发生在两个变化。

题为“成本计算器”的工作表的

  • 单元格值需要=题为“成本”的工作表的H1单元格值(由一列抵消)

需要复制题为“成本计算器”的工作表单元格E22中的计算结果,并将值粘贴到题为“成本”的工作表的H2中,再由一列抵消。

这需要用相同的两个偏移发生21次(包括初始时间)。

如果是这样的话,我会很高兴的,我可以为每一行运行宏,但是如果它也可以向下循环并继续运行,直到它到达一个空白处,这将是理想的。如果发生这种情况,在跨越21次之后,它需要向下移动一行,如下所示:

题为“成本计算器”工作表的

  • 单元格值需要=题为“成本”的工作表的单元格值(将始终位于第1行,因为这是题为“成本计算器”的工作表E9的E9值,需要=题为“成本计算器”工作表中题为“成本计算器”的E10的单元格值的A3单元值,该工作表中题为“成本计算器”的E10单元值需要=题为“成本”的工作表中题为“成本”的E10单元格值。成本计算器“需要=题为”成本“的工作表中题为”成本“的C3的单元格值,即”成本计算器“工作表的E12单元格值需要=题为”成本计算器“的工作表中题为”成本“的工作表的单元格值(
  • cell value of E13 ),题为”成本计算器“的工作表的
  • 单元格值需要=题为”成本“的工作表的单元格值
  • ,则需要复制题为”成本计算器“的工作表单元格E22的计算结果,并将该值传递到题为”成本“的工作表的G3中。

然后与之前相同的偏移量21次并循环。

我甚至不确定Excel是否能做到这一点,但我想,如果有人在这里将能够提供帮助。如果你对我的问题有任何疑问,请告诉我,我尽量做到描述性好。希望这个想法得到传达,如果我需要重新格式化我的工作表的布局,以适应同样可以完成的代码。

EN

回答 1

Stack Overflow用户

发布于 2010-01-25 23:21:32

我不确定这正是你要找的,我被

然后

的偏移量与前21倍相同。然后循环。

我创建了一些代码来执行以下操作

题为“成本计算器”的工作表中题为“成本计算器”的工作表的

单元格值需要=题为“成本计算器”的工作表中题为“成本计算器”的E9的单元格值,该工作表中题为“成本计算器”的工作表中题为“成本”单元值的工作表的E8单元值单元值需要=题为“成本计算器”的工作表中题为“成本”的工作表的单元格值,即题为“成本计算器”的工作表的E11单元格值需要=工作表C2的单元格值。题为“成本计算器”的工作表中题为“E12”的单元格值需要=题为“成本计算器”的工作表的题为“成本”单元值的工作表的D2单元格值,题为“成本计算器”的工作表的单元格值需要=题为“成本”的工作表的单元格值,然后需要复制题为“成本计算器”的工作表单元格D2的计算结果,并将值粘贴到题为“成本”的工作表的G2中。

然后,完全相同的事情需要发生在两个变化。题为“成本计算器”工作表的E8的单元格值需要=题为“成本”的工作表的H1单元格值(由一列抵消),题为“成本计算器”的工作表单元格E22中的计算结果需要复制,并将值粘贴到题为“成本”的工作表的H2中,再由一列抵消。

代码语言:javascript
复制
Sub Calc_Loop()
Dim lngRow As Long
Dim intOS As Integer
Dim intCol As Integer

  Sheets("Cost Calculator").Select
  lngRow = 2
  Do
    For intOS = 1 To 5
      'Set Cells E9 - E13 = to Cells A-E on row lngRow on Sheet Costs
      Cells(8 + intOS, 5) = Sheets("Costs").Cells(lngRow, intOS)
    Next intOS
    'Set E8 to G1 on Sheet Costs
    Cells(8, 5) = Sheets("Costs").Cells(1, 7)
    'Set G on row lngRow on Sheet Costs to E22
    Sheets("Costs").Cells(lngRow, 7) = Cells(22, 5)

    'Set E8 to H1 on Sheet Costs
    Cells(8, 5) = Sheets("Costs").Cells(1, 8)
    'Set H on row lngRow on Sheet Costs to E22
    Sheets("Costs").Cells(lngRow, 8) = Cells(22, 5)

    lngRow = lngRow + 1
  Loop Until IsEmpty(Sheets("Costs").Cells(lngRow, 1))
End Sub

因此,这将在“成本”表中循环进行,并:

*为A2 - E2的计算输出插入G1和

*将H2插入A2 - E2与H1的计算输出

*为A3 - E3的计算输出插入G1和

*在H3中插入A3 - E3与H1的计算输出。

这就是你需要的吗?

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

https://stackoverflow.com/questions/2102882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档