创建 Outlook 约会
Creating Outlook Appointment
我已经创建了一个基本代码,它将通过 VBA excel UserForm 创建 Outlook 约会。但是,我的问题是,我不知道如何根据 TextBox10 和 Textbox11 的值设置 'Start',因为它不同时接受文本框的两个值。
Dim oAppt As AppointmentItem
Candidate = TextBox2.Value + " " + TextBox1.Value
InitialDate = TextBox10.Value
InitialTime = TextBox11.Value
Set oAppt = Outlook.Application.CreateItem(olAppointmentItem)
oAppt.Subject = Candidate
oAppt.Start = TextBox10.Value + TextBox11.Value
oAppt.Start = IntialTime
oAppt.Recipients.Add ("Email@gmail.com")
oAppt.Save
Candidate = Sheets("Client Lineup List").Range("F" & lMaxRows + 1).Value
首先,始终使用Option Explicit
。
首先将您的 TextBox 值转换为 date/time。下面的例子
Dim myDate As Date
myDate = CDate(TextBox10.Value & " " & TextBox11.Value)
但是,在这种情况下,需要进一步考虑 - 检查输入的日期和时间是否有效,否则我上面的示例代码会出错。一个简单的部分解决方案是使用 DatePicker
而不是 TextBox10
。 VB 中曾经有一个 DateTimePicker,但我不确定 VBA 中的当前等效项现在在哪里。
此外,检查我是如何连接字符串的(中间有一个 space),使用“&”,而不是“+”,这可能会产生有趣的副作用,特别是如果你没有设置 Option Explicit
并且没有声明你的变量(使它们成为 Variant
)。
您应该将 TextBox 值转换为 date/time。
您可以使用 VBA 相当于工作表的数据 ► 文本到列命令的方法,快速将类似于日期的文本列转换为实际日期。
(TextBox10.Value & " " & TextBox11.Value).TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlYMDFormat)
.NumberFormat = "yyyy-mm-dd" 'change to any date-based number format you prefer the cells to display
注意:您应该检查有效的日期和时间。
更多信息可以参考这个link:
Excel VBA - Convert Text to Date?
我已经创建了一个基本代码,它将通过 VBA excel UserForm 创建 Outlook 约会。但是,我的问题是,我不知道如何根据 TextBox10 和 Textbox11 的值设置 'Start',因为它不同时接受文本框的两个值。
Dim oAppt As AppointmentItem
Candidate = TextBox2.Value + " " + TextBox1.Value
InitialDate = TextBox10.Value
InitialTime = TextBox11.Value
Set oAppt = Outlook.Application.CreateItem(olAppointmentItem)
oAppt.Subject = Candidate
oAppt.Start = TextBox10.Value + TextBox11.Value
oAppt.Start = IntialTime
oAppt.Recipients.Add ("Email@gmail.com")
oAppt.Save
Candidate = Sheets("Client Lineup List").Range("F" & lMaxRows + 1).Value
首先,始终使用Option Explicit
。
首先将您的 TextBox 值转换为 date/time。下面的例子
Dim myDate As Date
myDate = CDate(TextBox10.Value & " " & TextBox11.Value)
但是,在这种情况下,需要进一步考虑 - 检查输入的日期和时间是否有效,否则我上面的示例代码会出错。一个简单的部分解决方案是使用 DatePicker
而不是 TextBox10
。 VB 中曾经有一个 DateTimePicker,但我不确定 VBA 中的当前等效项现在在哪里。
此外,检查我是如何连接字符串的(中间有一个 space),使用“&”,而不是“+”,这可能会产生有趣的副作用,特别是如果你没有设置 Option Explicit
并且没有声明你的变量(使它们成为 Variant
)。
您应该将 TextBox 值转换为 date/time。
您可以使用 VBA 相当于工作表的数据 ► 文本到列命令的方法,快速将类似于日期的文本列转换为实际日期。
(TextBox10.Value & " " & TextBox11.Value).TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlYMDFormat)
.NumberFormat = "yyyy-mm-dd" 'change to any date-based number format you prefer the cells to display
注意:您应该检查有效的日期和时间。
更多信息可以参考这个link:
Excel VBA - Convert Text to Date?