У меня написан макрос, который делает несколько вещей. Он запрашивает ваше имя и фамилию, помещает их в ячейки, окрашивает пару ячеек, перечисляет сегодняшнюю дату и даты через месяц, через 2 месяца, ... и через 12 месяцев. Я перестану объяснять это там, потому что это - то, где моя проблема входит.
Мне нужно использовать окно сообщения y / n, чтобы спросить пользователя, хотят ли они, чтобы первые 6 дат были окрашены в красный цвет, и еще один вопрос, хотят ли они, чтобы последние 6 дат были окрашены в синий цвет. Если они выберут да для первой, я выделю эти 6 дат и поменяю шрифт. То же самое для синего. Довольно просто.
Я получаю всплывающие окна с сообщениями, но когда я выбираю да - без изменений в шрифтах. Код просто продолжает двигаться дальше. Проблема начинается со строки «ColorAsk = MsgBox ...»
Sub FirstTrial()
'
' FirstTrial Macro
'
' Keyboard Shortcut: Ctrl+Shift+W
'
Dim FirstName As String
Dim LastName As String
Dim Range1 As Range, Data1 As Range
Dim ColorsAsk As VbMsgBoxResult
Dim ColorsAsk2 As VbMsgBoxResult
FirstName = InputBox("Please enter your first name")
LastName = InputBox("Please enter your last name")
Range("A1").Select
ActiveCell.Value = "First Name:"
Range("A2").Select
ActiveCell.Value = "Last Name:"
'Range("B6").Select
Columns("A:A").EntireColumn.AutoFit
Range("B1").Select
ActiveCell.Value = FirstName
Range("B2").Select
ActiveCell.Value = LastName
Range("A1:A2").Select
Selection.Font.Bold = True
Range("B1:B2").Select
With Selection.Interior 'Puts With in front of each of the following lines
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A3").Select
ActiveCell.Value = "=TODAY()"
Set Range1 = Range("A4:A15")
For Each Data1 In Range1
Data1 = "=EDATE(R[-1]C,1)"
Data1.Select
With Selection
.NumberFormat = "m/d/yy"
End With
Next Data1
ColorsAsk = MsgBox("Would you like the first 6 months colored red?", vbYesNo + vbDefaultButton1, "Coloring")
If ColorAsk = 6 Then
Range("A4:A9").Font.Color = vbRed
End If
ColorsAsk2 = MsgBox("Would you like the latter 6 months colored blue?", vbYesNo + vbDefaultButton1, "Coloring")
If ColorAsk2 = 6 Then
Range("A10:A15").Font.Color = vbBlue
End If
Worksheets.Add Before:=Worksheets(1)
ActiveSheet.Name = FirstName
Sheets(FirstName).Range("A1:A13").Value = Sheets("Sheet1").Range("A3:A15").Value
End Sub
И второй вопрос - не совсем необходимый, но помог бы узнать .... Вторым, последним, что делает этот код, является создание рабочего листа с именем, которое вы вводите в качестве своего имени. Последнее, что должен делать этот код, - это скопировать календарь из исходного листа и вставить его во вновь созданный лист. Прямо сейчас я делаю это при условии, что исходный лист будет называться «Лист1». Есть ли способ сделать это независимо от того, как называется исходный лист?