Создание встречи Outlook

Я создал базовый код, в котором он будет создавать встречи Outlook через VBA Excel UserForm. Моя проблема, однако, заключается в том, что я не знаю, как установить "Пуск" на основе значений 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

2 ответа

Решение

Во-первых, используйте Option Explicit всегда.

Сначала преобразуйте значения TextBox в дату / время. Пример ниже

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

Однако в этом случае требуются дополнительные соображения - проверьте, что введены правильные дата и время, иначе мой пример кода выше приведет к ошибке. Одним из простых решений проблемы является использование DatePicker вместо TextBox10, Раньше в VB был DateTimePicker, но я не уверен, где сейчас находится текущий эквивалент в VBA.

Кроме того, проверьте, как я конкатенировал строки (с пробелом между ними), используйте "&", а не "+", что может иметь интересные побочные эффекты, особенно если вы не установили Option Explicit и не объявлены ваши переменные (делая их Variant).

Вы должны преобразовать ваши значения TextBox в дату / время.

Вы можете быстро преобразовать столбец текста, который напоминает даты, в фактические даты с помощью 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 - конвертировать текст в дату?

Другие вопросы по тегам