使用 VBA 确定选定的 Outlook 日历日期

2023-12-04

我正在尝试使用用户在其日历上选择的日期填充 Outlook 日历约会模板的约会开始日期。

有人可以提供 VBA 代码,让我可以确定用户在日历上选择的日期(如果有)吗?


您可能会发现选择Explorer 类的属性很有帮助。它返回一个 Selection 对象,其中包含在资源管理器窗口中选择的一个或多个项目。

但你正在寻找的是选定的开始时间 and 选定的结束时间用于以编程方式复制用户在 Outlook UI 中创建约会的方式的属性。通常,用户在日历视图中选择一个时间范围,然后通过双击所选内容或单击功能区“主页”选项卡中的“新建约会”来创建新约会。利用 CalendarView 对象的这两个属性,您可以通过编程方式获取该视图中任何选择的开始时间和结束时间。

然后,您可以通过编程方式创建 AppointmentItem 对象,将 AppointmentItem 对象的 Start 和 End 属性分别设置为 SelectedStartTime 和 SelectedEndTime 属性,以反映日历视图中的任何用户选择。 如果日历视图中的选择是时间范围而不是项目,则 SelectedStartTime 返回等于选择的开始时间的日期值。 如果在日历视图中选择了一个或多个项目,则 SelectedStartTime 返回一个日期值,该值等于显示日历视图的资源管理器的选择中第一个项目的开始时间。该选择由 Explorer 对象的 Selection 属性指定。例如:

 Sub CreateAppointmentUsingSelectedTime() 
  Dim datStart As Date 
  Dim datEnd As Date 
  Dim oView As Outlook.view 
  Dim oCalView As Outlook.CalendarView 
  Dim oExpl As Outlook.Explorer 
  Dim oFolder As Outlook.folder 
  Dim oAppt As Outlook.AppointmentItem 
  Const datNull As Date = #1/1/4501# 

  ' Obtain the calendar view using 
  ' Application.ActiveExplorer.CurrentFolder.CurrentView. 
  ' If you use oExpl.CurrentFolder.CurrentView, 
  ' this code will not operate as expected. 
  Set oExpl = Application.ActiveExplorer 
  Set oFolder = Application.ActiveExplorer.CurrentFolder 
  Set oView = oExpl.CurrentView 

  ' Check whether the active explorer is displaying a calendar view. 
  If oView.ViewType = olCalendarView Then 
  Set oCalView = oExpl.currentView 
  ' Create the appointment using the values in 
  ' the SelectedStartTime and SelectedEndTime properties as 
  ' appointment start and end times. 
  datStart = oCalView.SelectedStartTime 
  datEnd = oCalView.SelectedEndTime 
  Set oAppt = oFolder.items.Add("IPM.Appointment") 
  If datStart <> datNull And datEnd <> datNull Then 
   oAppt.Start = datStart 
   oAppt.End = datEnd 
  End If 
  oAppt.Display 
 End If 
End Sub 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 VBA 确定选定的 Outlook 日历日期 的相关文章

  • 拆分具有多行文本和单行文本的行

    我试图弄清楚如何拆分数据行 其中行中的 B C D 列包含多行 而其他列不包含多行 我已经弄清楚如何拆分多行单元格 如果我将这些列复制到新工作表中 手动插入行 然后运行下面的宏 仅适用于 A 列 但我在编码时迷失了休息 Here s wha
  • VBA 访问:从另一个表单的代码刷新一个表单

    编辑 没关系有人帮助了我 form name recalc 或 form name refresh form main recalc 我有两种形式 主要 详细信息 在 主 表单中 我有一个在对话框中打开 详细信息 的按钮 问题是我在 详细信
  • 在 VBA 中按键对字典进行排序

    我使用 VBA 创建了一个字典CreateObject Scripting Dictionary 将源单词映射到要在某些文本中替换的目标单词 这实际上是为了混淆 不幸的是 当我按照下面的代码进行实际替换时 它将按照源单词添加到字典中的顺序替
  • OpenArgs 为空问题

    我正在使用OpenArgs使用时发送值的参数DoCmd OpenForm DoCmd OpenForm frmSetOther acNormal acFormAdd acDialog value 然后我用Me OpenArgs在打开的表格内
  • 如何在字符串vba中包含引号

    我想存储以下文本 Test1 Monday Test Abcdef 全部在字符串中包含引号 我知道要在字符串中包含引号 我必须包含 之前 但在这里这不是一个很好的解决方案 因为我在文本中有太多这样的解决方案 知道如何一次完成这一切吗 您有两
  • 如何将 .env 添加到 codeigniter?

    我尝试按照以下步骤使 php 连接到 Outlookhttps learn microsoft com en us outlook rest php tutorial https learn microsoft com en us outl
  • 如何使用VBA根据条件删除Excel中的行?

    我目前正在构建一个宏来格式化数据表并删除不适用的数据行 具体来说 我希望删除列 L ABC 的行以及删除列 AA DEF 的行 到目前为止 我已经实现了第一个目标 但还没有实现第二个目标 现有代码是 Dim LastRow As Integ
  • 将ADODB二进制流转换为字符串vba

    我有以下问题 我有一个存储在服务器上的 CSV 文件 但它有 3 个字符作为分隔符 我想从 URL 加载数据并使用 作为分隔符将数据填充到 Excel 页面的列中 到目前为止 我找到了使用 ADODB 记录集从网站加载文件的代码 但我无法进
  • Excel工作簿关闭后反复打开

    我使用了 Application ontime 方法来调度一些宏 关闭工作簿后 它会一次又一次地打开 为了解决这个问题 我在工作簿上设置了另一个事件 BeforeClosed 现在它显示运行时错误 1004 Object Applicati
  • 是否有任何API可以将Microsoft Exchange服务器与Java应用程序集成以进行任务同步?

    我正在尝试将 Java Web 应用程序与 Microsoft Exchange 服务器集成以实现双向日历 即任务 同步 是否有用于此集成的 Java 开源 商业 API 谢谢 文卡特 看一眼j 交易所 http sourceforge n
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 获取今天的科普特日期

    我正在寻找获取今天的科普特日期与任何代码类型类似php or javascript在我的网站标题中显示科普特日期 我需要阿拉伯语或英语版本 我试图找到它 但没有找到类似的英文内容 参考 http www copticchurch net e
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • 通过 Excel / VBA 调用 DLL 中的 C++ 函数在传递双参数时生成异常

    我试图通过 DLL 在 Excel VBA 中使用 C C 静态函数 我在 VS17 中调试时遇到异常 我怀疑这是参数传递方式的问题 它是双精度 EXCEL EXE 中 0x00007FFA28BBA14F kernel32 dll 处抛出
  • 返回条件格式化单元格内部颜色的函数

    我想要一个返回条件格式单元格颜色索引值的函数 它用于检查一行中的多个单元格 如果它们使用条件格式突出显示 则需要执行操作 检查单元格中是否有颜色比创建覆盖条件的组合条件公式更简单所有细胞的 或者说我是这么想的 尽管代码在消息框中有效 但下面
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • 替换字符串变量中的多个字符 (VBA)

    如何替换字符串变量中的多个内容 这是我在 VBA 中的示例函数 Private Function ExampleFunc ByVal unitNr As String If InStr unitNr OE gt 0 Then unitNr
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 如何修复日期过滤器 VBA,因为它没有拾取我范围内的所有日期

    我正在尝试创建一个过滤器来过滤掉我选择的日期内的所有日期 我选择的日期将始终反映整个月 例如 如果我需要 2019 年 5 月的数据 我将输入开始日期为 01 05 2019 结束日期为 31 05 2019 我的数据过滤器将需要选取经过我
  • Access / Word 2010 VBA 邮件合并尝试打开 [文件夹名称].mdb 而不是 ACCDB 源

    我们正在尝试从 Access 中自动执行邮件合并过程 单击按钮后 VBA 将运行指定当前数据库 accdb 作为数据源并运行 SQL 具体代码如下 Set up Word Dim objWord As Object Set objWord

随机推荐