Установите переменную на значение даты в B1 перед созданием нового листа, чтобы вы могли использовать его в процессе именования.
Private Sub MonthlyUpdate2()
Dim ws As Worksheet, dt as long
With ThisWorkbook
dt = activesheet.range("B1").value2
Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
ws.name = Format(DateAdd("m", 1, dt), "MMM-YY")
End With
End Sub
Дата - это просто число, представляющее количество дней с момента31-дек-одна тысяча восемьсот девяносто девять.Для этой цели длинное целое число также подходит, как и переменная даты.Также обратите внимание, что -1 стал 1 в DateAdd.
Существует некоторая путаница относительно того, где на самом деле находится ячейка B1, поэтому я использовал ActiveSheet (тот, который вы видите).Это не всегда лучший метод, и предпочтительнее правильно определить родительский лист.