Макрос для автоматизации следующего месяца и года на основе предыдущего листа - PullRequest
2 голосов
/ 23 мая 2019

Я работаю над макросом, которому поручено копировать и вставлять скрытый лист, вводить месяц и год в определенной ячейке (на основе введенного значения с предыдущего листа. В настоящее время у меня возникают проблемы при выполнении этой операции в качестве ячейки, из которой яполучить (прочитать) мои данные, содержит месяц и год. У меня есть этот код (предоставленный мне очень полезным членом сообщества stackoverflow):

NextMonth = Format(DateSerial(Year(Date), Month(DateValue("1/" & Range("A1") & "/" & Year(Date))) + 1, 1), "mmmm")

Код работает нормально, только для A1содержит месяц. Любые идеи, как читать, например, только "февраль", хотя ячейка содержит "февраль 2019" и использовать его с формулой выше, чтобы получить март? С его помощью я буду хранить месяц в переменной "A"и сохраните год с помощью" B = Year (Now ()) "в другом. Наконец, я назначу его ячейке на нужном листе с помощью" = A & B "

Есть мысли? С уважением,Alex

Примечание: Код текущего (фактического) месяца не представляет интереса. Также у меня есть код для автоматизации первого листа, где код запрашивает у пользователя ввод месяца и лет.

1 Ответ

2 голосов
/ 23 мая 2019

Код ниже позволяет:
1. номер месяца
2. месяц прописан
2. комбинация двух пунктов выше

Другими словами, код будет принимать следующие значения ячеек

  • «Февраль» и «Февраль 2019»
  • «1» и «1 2019»
Sub newmonth()
Dim datecell As Range
Dim d As Variant
Dim newdate As Date

Set datecell = Sheet1.Range("D21")

If IsDate(datecell) Then
    d = datecell
Else
    d = datecell & " " & Year(Now())
End If

newdate = DateAdd("m", 1, d)

Debug.Print Format(newdate, "mmmm yyyy")
'Alternatively, you could put this value in another cell
'Sheet2.Range("A1").Value = Format(newdate, "mmmm yyyy")

End Sub

Убедитесь, что вы настроили ссылки так, чтобы они соответствовали конфигурации вашей рабочей книги

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...