将变量循环的结果写入表格

时间:2015-03-28 23:58:37

标签: excel vba excel-vba

我正在尝试使用宏将今天到9月的几个月写入我的Excel工作表。以下是我遇到问题的代码的一部分:

Dim months(1 To 12) As String

For i = m To 9
  months(i) = i    
  Cells(31 + i, 6) = MonthName(months(i))
Next i

代码基本上有效,但问题是excel电子表格中的第一个单元格随i的值而变化。例如,如果今天是3月,则第一个单元格将是(34,6),但如果是4月则是(35,6)。

任何人都可以给我一个提示如何修复"第一个细胞?

1 个答案:

答案 0 :(得分:2)

或者您可以使用类似的东西并避免循环/使用数组:

Sub SO()

Const startColumn As String = "F" '// Change as required
Const noMonths As Integer = 9 '// Number of months required

With Range(startColumn & "31").Resize(1, noMonths)
    .Formula = "=TEXT(DATEVALUE(""01-""&COLUMN()-" & Range(startColumn & "1").Column - 1 & "&""-2015""),""Mmmm"")"
    .Value = .Value
End With

End Sub