【问题标题】:Creating Outlook Appointment创建 Outlook 约会
【发布时间】:2018-10-02 16:59:40
【问题描述】:

我创建了一个基本代码,它将通过 VBA excel UserForm 创建一个 Outlook 约会。但是,我的问题是,我不知道如何根据 TextBox10 和 Textbox11 的值设置“开始”,因为它不同时接受两个文本框的值。

 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

【问题讨论】:

    标签: vba outlook createitem


    【解决方案1】:

    首先,始终使用Option Explicit

    首先将您的 TextBox 值转换为日期/时间。下面的例子

    Dim myDate As Date
    myDate = CDate(TextBox10.Value & " " & TextBox11.Value)
    

    但是,在这种情况下,需要进一步考虑 - 检查输入的日期和时间是否有效,否则我上面的示例代码将出错。一个简单的部分解决方案是使用DatePicker 而不是TextBox10。 VB中曾经有一个DateTimePicker,但我不确定VBA中当前的等效项现在在哪里。

    另外,检查我是如何连接字符串的(中间有一个空格),使用“&”,而不是“+”,这可能会产生有趣的副作用,特别是如果你没有设置 Option Explicit 并且没有声明你的变量(使它们成为Variant)。

    【讨论】:

      【解决方案2】:

      您应该将 TextBox 值转换为日期/时间。

      您可以使用与工作表的 Data ► Text-to-Columns 命令等效的 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
      

      注意:您应该检查一个有效的日期和时间。

      更多信息可以参考这个链接:

      Excel VBA - Convert Text to Date?

      【讨论】:

      • 但是,OP 正在使用 Outlook,这就是 Excel 的 DATEVALUE 或 Access 的 DATESERIAL 不适用的原因。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      相关资源
      最近更新 更多