/ / Automātiska mēneša vasaras rindas pievienošana katra mēneša beigās? - Excel

Katra mēneša beigās automātiski tiek pievienota mēneša rinda? - excel

Es izmantoju Excel lapu, lai izsekotu savu darbustundas. Katra rinda ir darba diena, un tai ir "datums", "laiks", "laiks", "kopējais darba laiks" un "dienas alga". Es gribētu, lai lapa automātiski izveidotu mēneša vasaras līniju katru reizi, kad rakstu ierakstu nākamajā mēnesī (ti, ja rindai ar datumu 13/3/16 seko rinda ar datumu 2/4/16, otrā rinda tiks nospiesta, un starp rindām tiks veidota rinda ar vasaras laiku (ti, kopējās mēneša stundas, kopējās mēneša algas). šeit ievadiet attēla aprakstu

Vai tas ir iespējams? ja jā, kā to darīt? Paldies par ieguldījumu!

Atbildes:

0 atbildei Nr. 1

Šis kods ir jānovieto lapas koda modulī. Tā man strādāja par jūsu organizētajiem datiem.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ThisSheet As Worksheet
Dim NewRow As Long
Dim OldTotalRange As Range
Dim OldTotalRow As Long

Set ThisSheet = ActiveSheet
"If not single cell is changed, exit sub
If Target.Cells.Count = 1 Then
"Disable events for prevent recursion
Application.EnableEvents = False
If Target.Column = 1 And Target.Row <> 1 And Target.value <> "" Then
If IsDate(Target.value) And IsDate(Target.Offset(-1, 0).value) Then
If Month(Target.value) <> Month(Target.Offset(-1, 0).value) Then
With ThisSheet
NewRow = Target.Row
On Error Resume Next
Set OldTotalRange = .Columns(1).Find(What:="Total", After:=Target, SearchDirection:=xlPrevious)
OldTotalRow = OldTotalRange.Row
"It"s for first "Total" when there isn"t "totals" before.
If OldTotalRow = 0 Then
OldTotalRow = 1
End If
.Rows(NewRow).Insert
.Cells(NewRow, 1) = "Total"
.Cells(NewRow, 4).FormulaR1C1 = "=SUM(R[-" & NewRow - OldTotalRow - 1 & "]C:R[-1]C)"
.Cells(NewRow, 5).FormulaR1C1 = "=SUM(R[-" & NewRow - OldTotalRow - 1 & "]C:R[-1]C)"
"It"s formatting, you can delete it or change
.Range(.Cells(NewRow, 1), .Cells(NewRow, 5)).Interior.Color = RGB(196, 215, 155)
.Range(.Cells(NewRow, 1), .Cells(NewRow, 5)).Font.Bold = True
End With
End If
End If
End If
Else
Exit Sub
End If
"Enable events
Application.EnableEvents = True
End Sub

Saistītie jautājumi


Komentāri (0)

Pievieno komentāru