Kelly có một bảng tính trong đó cô ấy có một bảng ngày được dùng làm ngày kết thúc để đưa quảng cáo vào các Trang vàng địa phương. Cô ấy muốn nhập những ngày này vào Outlook Calendar

với lời nhắc 72 giờ, nhưng một số ngày tiếp tục thay đổi thành số.

Kelly tự hỏi làm thế nào cô ấy có thể đưa ngày tháng trong Excel vào Outlook như cô ấy cần.

Làm việc với Outlook “cao hơn” một chút so với macro Excel chạy hàng loạt của bạn vì bạn không chỉ cần hiểu cách truy cập dữ liệu Excel trong macro mà còn cả cách thao tác với dữ liệu Outlook. Nếu không biết chính xác dữ liệu nào bạn cần chuyển từ trang tính sang cuộc hẹn Outlook, hãy xem xét một tình huống ngắn.

Giả sử rằng bạn có một trang tính chứa một loạt các hàng, mỗi hàng đại diện cho một cuộc hẹn mà bạn muốn tạo. Mỗi cuộc hẹn chứa thông tin trong bảy cột, như sau, từ trái sang phải:

Chủ đề. * Văn bản mô tả sự kiện / cuộc hẹn (ví dụ: “Lời nhắc trang vàng”)

Vị trí. * Văn bản mô tả địa điểm diễn ra sự kiện, chẳng hạn như phòng họp hoặc số cuộc gọi hội nghị (tùy chọn này)

Ngày / Giờ bắt đầu. * Nhập ngày và giờ sự kiện sẽ bắt đầu bằng định dạng ngày chuẩn của Excel (bạn có thể hiển thị theo bất kỳ cách nào bạn muốn)

Thời lượng. Số nguyên đại diện cho một số phút cho cuộc hẹn Trạng thái bận. Số nguyên đại diện cho một giá trị tùy chọn cho biết thời gian có nên hiển thị là Rảnh (0), Tạm dừng (1), Bận (2) hoặc Vắng mặt (3)

Thời gian nhắc nhở. * Số nguyên biểu thị số phút trước cuộc hẹn mà lời nhắc sẽ bật lên (như năm 4320, là số phút trong 3 ngày)

Nội dung. * Văn bản mô tả bất kỳ chi tiết nào bạn có thể muốn đặt trong nội dung cuộc hẹn

Với dữ liệu này, bạn có thể sử dụng macro để lặp qua tất cả các hàng (bắt đầu từ hàng thứ hai, giả sử hàng đầu tiên có tiêu đề)

và tạo một cuộc hẹn cho mỗi hàng.

Sub AddAppointments()

' Create the Outlook session     Set myOutlook = CreateObject("Outlook.Application")



' Start at row 2     r = 2

Do Until Trim(Cells(r, 1).Value) = ""

' Create the AppointmentItem          Set myApt = myOutlook.createitem(1)

' Set the appointment properties         myApt.Subject = Cells(r, 1).Value         myApt.Location = Cells(r, 2).Value         myApt.Start = Cells(r, 3).Value         myApt.Duration = Cells(r, 4).Value         ' If Busy Status is not specified, default to 2 (Busy)

If Trim(Cells(r, 5).Value) = "" Then             myApt.BusyStatus = 2         Else             myApt.BusyStatus = Cells(r, 5).Value         End If         If Cells(r, 6).Value > 0 Then             myApt.ReminderSet = True             myApt.ReminderMinutesBeforeStart = Cells(r, 6).Value         Else             myApt.ReminderSet = False         End If         myApt.Body = Cells(r, 7).Value         myApt.Save         r = r + 1     Loop End Sub

Macro tiếp tục lặp qua các hàng cho đến khi cột Chủ đề trống.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (7349) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.