【问题标题】:How to use the command "range" in order to specify multiple cells for calculations如何使用命令“范围”来指定多个单元格进行计算
【发布时间】:2018-07-24 14:22:21
【问题描述】:

目的是计算平均值并将其写入单元格。它的代码如下:

Sub Schaltfläche2_Klicken()     Dim wb As Workbook, wq As Object
Dim ws As Worksheet, datdatum

 Set wb = Workbooks.Add
 Set ws = wb.Worksheets("Tabelle1")

 ws.Range("D84").Formula = "=Average(D19,D29,D35,D46)
 ws.Range("E84").Formula = "=Average(E19,E29,E35,E46)
 ws.Range("F84").Formula = "=Average(F19,F29,F35,F46)

简短的方法是:

ws.Range("D84:P84").Formula = "=Average(D19,D29,D35,D46)

这适用于指定的范围。

【问题讨论】:

  • 欢迎来到 Stack Overflow:请阅读 How to ask a good question,然后编辑您的问题并确保询问 good, clear, concise question,包括代码、预期行为以及问题所在......然后我们可以尝试帮助
  • 请包含您的所有代码以及预期结果,并向我们展示哪里出了问题 - 然后我们可以尝试提供帮助

标签: excel vba loops average calculation


【解决方案1】:

不需要循环。 VBA 将自行进行更改:

s.Range("D84:P84").Formula = "=Average(D19,D29,D35,D46)"

Excel 将更改列引用,就像它被拖过一样。

但如果你真的想循环,那么你需要从字符串中的引号中删除 vba 并与 & 连接

 For i = 4 To 16
     ws.Cells(84, i).Formula = "=Average(" & ws.Cells(19,i).Address & "," & _
          ws.Cells(29,i).Address & "," &ws.Cells(35,i).Address & "," & _
          ws.Cells(46,i).Address)"
 Next i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    相关资源
    最近更新 更多