Excel VBA:在当前选择中编写公式

时间:2011-08-25 06:57:58

标签: excel vba selection formula

我想根据引用的单元格将当前月份写入当前选择。这是我的代码,但我收到错误消息:对象变量或未设置块变量。我不知道问题是什么 - 任何人都有线索?

Sub SelectionMonthNames()

Dim Currentrange As Range

For i = 1 To 3

    Currentrange = Selection.Address

    If i = 1 Then
        Currentrange.Formula = "=DATE(YEAR($B$5);MONTH($B$5);DAY($B$5))"
    Else
        Currentrange.Formula = "=DATE(YEAR($B$5);MONTH($B$5)+" & CStr(i - 1) & ";DAY($B$5))"
    End If

    Selection.Offset(0, 1).Select

Next i
End Sub

1 个答案:

答案 0 :(得分:2)

尝试

Set Currentrange = Selection.Address

而不是

Currentrange = Selection.Address

修改

因此,宏的最终版本应如下所示:

Sub SelectionMonthNames()

Dim Currentrange As Range

For i = 1 To 3

Set Currentrange = Selection

If i = 1 Then
    Currentrange.Formula = "=DATE(YEAR($B$5),MONTH($B$5),DAY($B$5))"
Else
    Currentrange.Formula = "=DATE(YEAR($B$5),MONTH($B$5)+" & CStr(i - 1) &",DAY($B$5))"
End If

Selection.Offset(0, 1).Select

Next i
End Sub