Excel VBA: написание формулы в текущем выборе - PullRequest
0 голосов
/ 25 августа 2011

Я хочу записать текущий месяц на основе указанной ячейки в текущий выбор.Это мой код, но я получаю сообщение об ошибке: переменная объекта или переменная блока не установлена.Я не знаю, в чем проблема - у кого-нибудь есть подсказка?

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 Ответ

2 голосов
/ 25 августа 2011

Попробуйте

Set Currentrange = Selection.Address

Вместо

Currentrange = Selection.Address

EDIT:

Итак, финальная версия вашего макроса должна выглядеть так:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...