我正在尝试做什么; 我想要一个日历,当约会完成时,我可以把约会添加到我的约会收取的金额作为收入,也可以添加当我购买耗材的一天,我买他们多少,并将其作为开支。然后,将这些信息(收入/费用)填充到另一个标签中,这些标签可以打印出来并纳入会计核算。擅长使用VBA在日历中输入日期
我正在处理日历部分,但在出现在正确列中的日子有问题。这些日子里,每个箱子都有3列,这样我就可以稍后添加数据。我可以在日历中填充日期,但我需要它们每次跳过两列,但它们不是。
我正在包括代码和它在这个时候出现的剪辑。
Sub CreateCalendar()
Dim csheet As Worksheet
Set csheet = ThisWorkbook.Sheets("Sheet2")
selDate = [b1]
fMon = DateSerial(Year(selDate), Month(selDate), 1)
lMon = CDate(Application.WorksheetFunction.EoMonth(fMon, 0))
stRow = 4
'clear last cal
Rows(4).ClearContents
Rows(10).ClearContents
Rows(16).ClearContents
Rows(22).ClearContents
Rows(28).ClearContents
Rows(34).ClearContents
'determine what weekday 1st is. . .
If Weekday(fMon) = 1 Then
stCol = 4
ElseIf Weekday(fMon) = 4 Then
stCol = 7
ElseIf Weekday(fMon) = 7 Then
stCol = 10
ElseIf Weekday(fMon) = 10 Then
stCol = 13
ElseIf Weekday(fMon) = 13 Then
stCol = 16
ElseIf Weekday(fMon) = 16 Then
stCol = 19
ElseIf Weekday(fMon) = 19 Then
stCol = 22
End If
For x = 1 To Day(lMon)
If FirstT = Empty Then
csheet.Cells(stRow, stCol) = fMon
FirstT = 1
Else
fMon = fMon + 1
csheet.Cells(stRow, stCol) = fMon
End If
If stCol = 22 Then
stCol = 4
stRow = stRow + 8
Else
stCol = stCol + 1
End If
Next x
End Sub
你是什么意思?“我需要他们每次跳过两列”? –
如果我运行你的代码(实际上需要改变以获得一天),使用3/1/2017的日期,然后它将第4行(col GV)中的1至16,然后第12行中的17-31 col DR)。你真的想要它超过7天吗? –
抱歉张贴了错误的图片。它只会是7天,但我需要第2天,第4天和第3天是第7天,等等。 –