平均值为' For'环

时间:2015-11-21 17:37:24

标签: excel vba

我在此代码中遇到了一些问题,我的.Value无法正常工作。

如果我执行硬编码我的一切正常 - >>> .Value =" =平均值(E2:E7)"

但是,当我执行以下操作时,它将无效。我确定它是 - >范围(" E" ........)

'Iterate average for close price per week
Dim startOfWeek As Integer
Dim endOfWeek As Integer

numberOfWeek = 52
startOfWeek = 2
endOfWeek = 6
secondRow = 2

For i = 1 To numberOfWeek
    range("J" + CStr(secondRow)).Select
        With Selection





            .Value = "=Average(" + range("E" + CStr(startOfWeek) + ":E" + CStr(endOfWeek)).Select + ")"




            .Font.Bold = False
        End With
    secondRow = secondRow + 1
    startOfWeek = startOfWeek + 5
    endOfWeek = endOfWeek + 5
Next i

1 个答案:

答案 0 :(得分:1)

  1. 引用行号时无需添加CStr。你可以全部删除它们。
  2. 您可以删除所有选择语句并直接使用该对象。
  3. 所以你可以像这样重构你的代码:

    'Iterate average for close price per week
    Dim startOfWeek As Integer
    Dim endOfWeek As Integer
    
    numberOfWeek = 52
    startOfWeek = 2
    endOfWeek = 6
    secondRow = 2
    
    For i = 1 To numberOfWeek
    
         With Range("J" & secondRow)
    
            .Value = "=Average(E" & startOfWeek & ":E" & endOfWeek & ")"
            .Font.Bold = False
    
         End With
    
        secondRow = secondRow + 1
        startOfWeek = startOfWeek + 5
        endOfWeek = endOfWeek + 5
    
    Next i