vba - 将变量循环的结果写入工作表

标签 vba excel

我正在尝试使用宏将从今天到 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的值而变化。例如,如果今天是三月,则第一个单元格将为 (34,6),但如果今天是四月,则第一个单元格将为 (35,6)。

任何人都可以给我提示如何“修复”第一个单元格吗?

最佳答案

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

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

关于vba - 将变量循环的结果写入工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29324059/

相关文章:

vba - 如何在VBA中创建一个返回对象列表的函数

excel - VBA excel - 循环循环

excel - 从用户定义函数返回 Empty 实际上返回 0

.net - GridView : Export to csv issue

vba - 通过VBA代码重命名工作表代码名称(不通过属性)

regex - 类型?文本 block 正则表达式函数

arrays - 使用条件从 VBA 数组中删除重复项

excel - VBA 根据位置选择形状

excel - 使用 Excel VBA 在 AutoCad 2019 中创建 Xlines

python - 如何将变量从 Python 传递到 VBA Sub