- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 VBA 很陌生,所以请多多包涵。我有一个用户表单,它将最终创建一个 2 或 6 周的日程表。用户窗体有一个文本框,它会自动填充当前一周的星期一作为前瞻开始日期。如果用户输入日期,它将使用该日期作为前瞻开始日期。
我似乎无法弄清楚的部分是公式,因此当用户输入日期时,它会计算该周的星期一。
编码:
Private Sub UserForm_Initialize()
'Inserts date of Monday this week into "Start Date" field in UserForm
LookAheadDate1.Value = Date - Weekday(Date) + 2
End Sub
Private Sub Generate_Click()
Dim StartDate As Date
Dim EndDate As Date
Dim ws As Worksheet
Dim addme As Long
Set ws = Worksheets("Projects")
addme = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
' Clears Look Ahead sheet - Row 5 and below
With Sheets("Look Ahead")
.Rows(5 & ":" & .Rows.Count).Delete
End With
'Force user to select either option button
If ((Me.OptionButton1.Value = 0) * (Me.OptionButton2.Value = 0)) Then
MsgBox "Please select 2 or 6 Week Look Ahead"
End If
'Force user to select either option button
If ((Me.OptionButton1.Value)) Then
ThisWorkbook.Worksheets("Look Ahead").Range("E6").Value = "2 Week Look Ahead"
End If
If ((Me.OptionButton2.Value)) Then
ThisWorkbook.Worksheets("Look Ahead").Range("E6").Value = "6 Week Look Ahead"
End If
' Set StartDate Variable - If Start Date field value is blank, use this weeks start date, otherwise use start date field value
If IsNull(Me.LookAheadDate1.Value) Or Me.LookAheadDate1.Value = "" Then
StartDate = Date
Else
StartDate = LookAheadDate1.Value
End If
' Option buttons / Code to create end date for 2 or 6 week look ahead
Dim res As Date
If OptionButton1.Value Then
EndDate = StartDate - Weekday(Date) + 16
ElseIf OptionButton2.Value Then
EndDate = StartDate - Weekday(Date) + 44
End If
'Write Look Ahead date range in cell "E7"
ThisWorkbook.Worksheets("Look Ahead").Range("E7").Value = StartDate - Weekday(Date) + 2 & " to " & EndDate
'Clear all fields in UserForm
Dim oneControl As Object
For Each oneControl In ProjectData.Controls
Select Case TypeName(oneControl)
Case "TextBox"
oneControl.Text = vbNullString
Case "CheckBox"
oneControl.Value = False
End Select
Next oneControl
'Close UserForm.
Unload Me
End Sub
Private Sub ToggleButton1_Click()
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub LookAheadDate1_Change()
End Sub
Private Sub Cancel_Click()
'Close UserForm if "Cancel" Button is pressed
Unload Me
End Sub
'Checks for entry of valid date
Private Sub LookAheadDate1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If LookAheadDate1 = vbNullString Then Exit Sub
If IsDate(LookAheadDate1) Then
LookAheadDate1 = Format(LookAheadDate1, "Short Date")
Else
MsgBox "Please Enter Valid Date"
Cancel = True
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'If the user clicks the "X" to close the UserForm, then cancel
If CloseMode = 0 Then Cancel_Click
End Sub
最佳答案
如果我正确理解您关于日期的问题,您希望编辑此代码块:
If IsNull(Me.LookAheadDate1.Value) Or Me.LookAheadDate1.Value = "" Then
StartDate = Date ' <--- this is where you want Monday, right?
Else
StartDate = LookAheadDate1.Value
End If
如果是这样,请将标记的行替换为
StartDate = Date - Application.WorksheetFunction.Weekday(Date,3)
获取本周星期一的日期为
StartDate
.
Date
返回当前日期(类似于 Now
,但没有时间部分)Weekday
( =WEEKDAY()
) 获取星期一来自 this answer由 Paul Else
分支:
Dim enteredDate as Date
enteredDate = CDate(LookAheadDate1.Value)
StartDate = enteredDate - Application.WorksheetFunction.Weekday(enteredDate,3)
CDate
根据当前语言环境从文本转换为日期。如果您需要更复杂的转换,您可能需要手动解析日期文本。
LookAheadDate1
是一个文本框,因为我看到您使用
Format(..., "Short Date")
给它一个值.如果是日期/时间选择器,您可能不需要
CDate
称呼。
关于vba - 根据用户表单输入获取本周的星期一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51442507/
寻找一个或多个 SQL 查询来确定本周的开始日(星期一)。 示例:如果今天是 -> 那么本周的开始是 Sat Oct 09, 2010 -> Start of the week is Monday O
这个问题在这里已经有了答案: How do I calculate number of given weekday between range using Moment JS? (5 个答案) 关闭
这个问题在这里已经有了答案: Sorting object property by values (45 个答案) 关闭 7 年前。 如何按工作日对工作日的 Javascript 对象进行排序,即这
我构建了一个应用程序,要求管理员根据特定月份(九月,..)和特定年份(2012)的日期名称(星期一,..)创建公交车时刻表。因此,9 月份的每个星期一,2o12 的巴士时刻表都会增加。如果巴士有周二、
我有一个事件系统设置,用户可以在其中添加一个事件(例如星期一),它可以发生一次,也可以是重复发生的事件。因此,在我的应用程序中,每当用户请求查看星期一的所有事件时,我都想返回当天的所有事件,并返回星期
我在使用 Date.js 库时遇到一些问题。我使用俄罗斯文化设置。一周的第一天设置为 1。这意味着我的一周应该是从周一到周日。星期一应该是我打电话时的返回值:Date.getDayNumberFrom
我看过很多关于如何使用日期字符串来完成此操作的帖子,但我正在尝试对数据框列进行一些操作,但到目前为止还没有任何运气。我当前的方法是:从“myday”获取工作日,然后偏移以获取星期一。 df['myda
有人可以为我提供以下帮助: 我有个约会,例如:2014年3月1日, 我想将其转换为数字5,因为它是星期五。 所以7-1-2014将为1,因为它是星期一。 哪个软件包/代码可以为我做这件事? 谢谢 最佳
有没有办法在 JQueryUI 日期选择器中以不同的颜色设置一周中的特定日期(所有星期一、全年的所有星期二等)?我知道有选择特定日期的内置方法,也有禁用假期的方法,但到目前为止我还没有找到执行此类任务
我正在开发一个程序,询问用户他们希望在哪一天看到午餐菜单。他们可以按名称输入任何一天(星期一、星期二等)。这很好用,但我也希望他们能够输入“今天”,然后让程序获取当前日期,然后检查菜单中的该值。 我该
我看过很多关于如何使用日期字符串进行操作的帖子,但我正在为数据框列尝试一些操作,但到目前为止还没有成功。我目前的方法是:从“myday”获取工作日,然后偏移以获得星期一。 df['myday'] is
php 是否具有自动将日期转换为其日期值的功能,其中 Monday=1、Tuesday=2 等。像这样 $daynum = func('wednesday'); //echos 3 最佳答案 $day
使用 Delphi,我需要一个函数来评估当前日期并查看它是否是例如该月的第三个星期日等。 伪代码: function IsFirst(const CurrentDateTime: TDateTime;
我想使用datepicker将“day”(星期一、星期二等)添加到输入中,但我不知道该怎么做. 我想要这样的“2016年3月3日星期二”而不是“2016年3月3日”我怎样才能做到这一点? 最佳答案 创
目前,我正在 Android 中开发 BroadcastReceiver、Service 和 AlarmManager,以开发我的项目中的一项功能。我需要在特定日期的特定时间安排一些任务。 例如:-
当用户输入其他日期的日期时,我使用此 sql 获取一周的开始日期(星期一) @StartDate 的格式为 (yyyymmdd) SQL: CAST(convert(varchar(12),DATEA
我有一个表,它使用 Bootstrap-vue 从数据库中提取信息。数据库有一个名为“day”的字段,它存储“mon”、“tue”、“wed”等字符串值。我希望能够按天而不是按字母顺序按此列对表进行排
我正在使用 Perl DateTime Module ,我想知道如何计算 First、Second、Third、Fourth 和 最后 星期日,星期一,...指定月份的星期六。 我的方法: 从 i=
我正在开发一个 Rails 3.1 应用程序,我需要在其中存储商店的营业时间。我想存储开门时间、关门时间和星期几。我的第一个想法是存储一个天数,其中 1 是星期一,7 是星期日,但是有没有更好的方法更
我创建了一个查询,使用此查询对 ISO 周的生产数据进行分组 SELECT to_char(wid_date,'IYYY'), to_char(wid_date,'IW'), tonnes FROM
我是一名优秀的程序员,十分优秀!