【发布时间】:2020-01-11 21:15:51
【问题描述】:
由于我在上一篇文章中问了一个错误的问题,但仍然有很多改进(我已经在 Excel 中创建了一个计划表,如果有人想要我会很乐意分享),这就是我想要做的:单元格 B2:开始日期 和 单元格 B3:结束日期
示例:
B2 --> 2019 年 11 月 3 日
B3 --> 22/04/2019
在这个社区的帮助下,这是我的代码
Option Explicit
Sub Sample()
Dim sDate As Date, eDate As Date
Dim NoOfWeeks As Long
Dim arr As Variant
Dim i As Long
Dim myCellToStart As Range
Set myCellToStart = Worksheets(1).Range("D4")
Dim myVar As Variant
Dim myCell As Range
Set myCell = myCellToStart
With Worksheets("Foglio1")
sDate = .Range("B2")
If Weekday(sDate, vbMonday) <> 1 Then
sDate = DateAdd("d", 7 - Weekday(sDate, vbMonday) + 1, sDate)
NoOfWeeks = 1
End If
eDate = .Range("B3")
End With
If sDate = eDate Then
NoOfWeeks = NoOfWeeks + 1
Else
NoOfWeeks = NoOfWeeks + WorksheetFunction.RoundUp((eDate - sDate) / 7, 0)
End If
ReDim arr(1 To NoOfWeeks)
For i = 1 To NoOfWeeks
arr(i) = i
Next i
End Sub
基本上,使用我当前的代码,我将获得一个具有以下输出的数组:arr(1, 2, 3, 4, 5, 6)
与此相关 --> See Calendar
我想获取:arr(11, 12, 13, 14, 15, 16, 17)
【问题讨论】:
-
插入
arr(i) = i使用arr(i) = i + Application.Worksheetfunction.WeekNum(sDate)