Кроме того, если у вас есть другой код, чтобы сделать ту же работу, пожалуйста.
Ниже будет предложено создать новый рабочий лист календаря на основе текущего месяца каждый раз, когда вы создадите новый рабочий лист.
ThisWorkbook code sheet:
Option Explicit
Private Sub Workbook_NewSheet(ByVal Sh As Object)
If MsgBox("Create new calendar?", vbYesNo, "AutoBuild") <> vbYes Then Exit Sub
'the following DELETES ANY WORKSHEET WITH THE SAME MONTH/YEAR NAME
On Error Resume Next
Application.DisplayAlerts = False
Worksheets(Format(Date, "mmm yyyy")).Delete
Application.DisplayAlerts = True
On Error GoTo 0
'create a new calendar worksheet based on the current month
With Sh
Dim c As Long
.Name = Format(Date, "mmm yyyy")
With .Cells(1, 1).Resize(6, Day(DateSerial(Year(Date), Month(Date) + 1, 0)))
.Formula = "=DATE(" & Year(Date) & ", " & Month(Date) & ", COLUMN())"
.Value = .Value
.Rows(1).NumberFormat = "d"
.Rows(2).Resize(.Rows.Count - 1, .Columns.Count).NumberFormat = "ddd"
.EntireColumn.ColumnWidth = 5 'AutoFit
.HorizontalAlignment = xlCenter
With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
With .FormatConditions
.Delete
.Add Type:=xlExpression, Formula1:="=AND(ROW()>2, WEEKDAY(A2, 15)>2)"
.Add Type:=xlExpression, Formula1:="=WEEKDAY(A2, 15)<3"
.Add Type:=xlExpression, Formula1:="=AND(ROW()=2, WEEKDAY(A2, 15)>2)"
End With
.FormatConditions(1).NumberFormat = ";;;"
.FormatConditions(2).Interior.Color = 5287936
.FormatConditions(3).Interior.Color = 14281213
End With
End With
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
.FreezePanes = True
.Zoom = 80
End With
End With
End Sub
Вы, вероятно, хотите, чтобы внести изменения, но это может быть хорошей основой для начала работы. Я использовал подход к использованию фактических дат и обращая внимание на их день недели и день недели через ячейку Number Format Code. Это оставляет исходные значения даты, доступные для расчета и поиска. Аналогично, даты, которые отображаются пустыми, на самом деле не пусты; формат пользовательского номера, который был применен через Conditional Formatting, просто не показывает никакого значения в ячейке.
К сожалению Rodger, в то время как ваш код сказать, что я хочу, но при попытке его, не дали никакого результата. –
Хммм, что ты имеешь в виду, это не дало результата. Разве это не все, что вы хотите? Это ошибка? Как выглядит вывод? Он работает, когда я запускаю его. – Rodger
О, спасибо Роджер, я понял, где была проблема, код не работал из-за небольших букв «Пт» и «Сб», но после того, как я поменял твое на «Капитал», он сильно работает. спасибо моему другу и сожалею, что не понимал этого. –