O Excel tem uma ampla gama de uso. Neste artigo, mostraremos como criar um calendário em uma planilha usando uma macro.
Além de armazenar e analisar dados em seu Excel, você também pode usá-lo para concluir outras tarefas. Por exemplo, você pode coletar informações usando o Excel ou anotar seu planejamento na planilha. Hoje encontramos um novo uso. Você é capaz de criar um calendário em uma planilha. Você pode ver o efeito na imagem abaixo.
Você pode inserir algumas tarefas neste calendário. E a função é a mesma de um memorando. Ao utilizar o Excel, essas tarefas ficarão mais claras. Agora siga as etapas na parte seguinte e veja como funciona.
Criar um calendário
- Pressione o botão “Alt +F11” no teclado para abrir a planilha.
- E então insira um novo módulo no editor do Visual Basic.
- Agora copiando os seguintes códigos para o novo módulo:
Sub Create_Monthly_Calender() Dim firstweekday As Integer, EndDay As Integer, _ FirstWeekColumnIndex As Integer, AssignmentDate As Integer, _ FirstCountNumber As Integer, SecondCountNumber As Integer, _ LastDay As Range, objRange As Range, RowIndexofLastday As Integer, FirstCountforTargetRange como inteiro, SecondCountforTargetRange As Integer firstday = InputBox("Insira o ano, o mês e o primeiro dia com este formato: ano/mês/dia") If firstday = "" Then Exit Sub Range("A1:G1").Merge Range("A1 ") = Ano(primeirodia) & "." & Month(firstday) Range("A2") = "Sunday" Range("A2").AutoFill Destination:=Range("A2:G2"), Type:=xlFillDefault firstweekday = Application.WorksheetFunction.Weekday(firstday) Cells (3, firstweekday) = 1 Selecione Case Month(firstday) Case 1, 3, 5, 7, 8, 10, 12 EndDay = 31 Case 4, 6, 9, 11 EndDay = 30 Case 2 If (Year(firstday) Mod 4) = 0 And (Year(firstday) Mod 100) <> 0 Or ((Year(firstday) Mod 400) = 0) Then EndDay = 29 Else EndDay = 28 End If End Select For FirstWeekColumnIndex = 1 To (7 - firstweekday ) Cells(3, firstweekday).Offset(0, FirstWeekColumnIndex) = Cells(3, firstweekday).Offset(0, FirstWeekColumnIndex - 1) + 1 Next FirstWeekColumnIndex AssignmentDate = Range("G3") + 1 For FirstCountNumber = 2 a 10 Etapa 2 Para SecondCountNumber = 0 a 6 Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = AssignmentDate AssignmentDate = AssignmentDate + 1 If Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = EndDay Then Exit For End If Next SecondCountNumber If Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = EndDay Then Exit For End If Next FirstCountNumber 'define o formato para o intervalo With Range("A1") . HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Font.Size = 16 .Font.Bold = True .Interior.Color = RGB(196, 202, 201) End With With Range("A2:G2") .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Font.Bold = True End With For Each LastDay In ActiveSheet.UsedRange If LastDay = EndDay Then RowIndexofLastday = LastDay.Row End If Next For FirstCountforTargetRange = RowIndexofLastday To 3 Step -2 With Range("A" & FirstCountforTargetRange, "G" & FirstCountforTargetRange) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .RowHeight = 20 Terminar com o próximo FirstCountforTargetRange para SecondCountforTargetRange = RowIndexofLastday + 1 To 4 Step -2 With Range("A" & SecondCountforTargetRange, "G" & SecondCountforTargetRange).TargetRange Set objRange = Range("A1", "G" & (RowIndexofLastday + 1)) With objRange.Borders .Color = vbBlack .Weight = xlThin .LineStyle = xlContinuous End With ActiveWindow.DisplayGridlines = False Cells(3, firstweekday). Offset(1, 0). Selecione End Sub
Portanto, é uma macro muito solitária. Mas você pode usá-lo diretamente. E você não precisa modificá-lo.
- Em seguida, pressione o botão “F5” no teclado.
- Na janela pop-up, insira a data do primeiro dia com o formato “Ano/Mês/Dia”. O “Dia” pode ser qualquer dia deste mês, aqui vamos inserir “1”.
- E depois clique no botão “OK”. Em seguida, você voltará ao editor. Para verificar o resultado, você pode voltar para a planilha.
O calendário já apareceu na planilha. E o cursor será posicionado na célula em branco do primeiro dia.
Por outro lado, se você não estiver satisfeito com o formato das células, também poderá modificar os códigos de acordo com sua preferência. Com este calendário, você certamente melhorará sua eficiência no trabalho.
O Excel não é menos propenso a falhas
Se você usa o Excel com frequência, não será difícil descobrir que o Excel sempre será corrompido. Most do tempo, saia do Excel e, em seguida, restart pode resolver o problema. No entanto, às vezes você encontrará corrupção severa do Excel. E neste momento, você pode usar nossa poderosa ferramenta para reparar erro de dados xlsx do Excel. Ao usar esta ferramenta, almost todos os erros podem ser resolvidos facilmente.
Introdução do autor:
Anna Ma é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar arquivo docx do Word e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com