尽管 Outlook 默认以 HTML 形式发送电子邮件,但 Microsoft 似乎想让我们很难自己编写 HTML。<img>使用 HTML 的一个重要原因是在插入图像时通过使用标签从在线访问图像而不是在电子邮件正文中插入图像本身来减小电子邮件的大小。
多个来源 [例如,1、2 ]表示,执行此操作的方法是使用“插入为文本”来插入包含 HTML 代码的文件。但从 Office 2016 开始,默认情况下“插入为文本”选项不再可用。幸运的是,还有一些资源 [例如,3 ] 展示了如何将其恢复。
但是,当我尝试此操作时,Outlook 没有解释我的 HTML。因此,例如,如果我创建一个包含以下行的文件:
<img src="https://www.lenetek.com/blog/how-to-create-html-emails-in-outlook/images/attach_file.jpg" alt="Random online image">
Run Code Online (Sandbox Code Playgroud)
然后使用“插入为文本”在我的电子邮件中插入该行,结果只是该行代码,而不是图像。我究竟做错了什么?
(如 alt 属性所示,该示例中的图像文件只是上面引用的一篇文章中出现的随机在线图像。我与该网站没有任何关系。)
在VBA中,如果我理解正确的话,空意味着变量尚未初始化,即它是赋值之前变量的默认值。
似乎有四种方法可以测试变体是否为空:
IsEmpty(var) = True
VarType(var) = vbEmpty
TypeName(var) = "Empty"
var = Empty
Run Code Online (Sandbox Code Playgroud)
我想知道的是这些方法是否完全等效,或者是否存在细微(或明显)的差异。
看起来它们应该是等价的,但我惊讶地发现微软关于 IsEmpty、vbEmpty( 1 , 2 ) 和onTypeName的文档 没有相互引用,我认为如果它们是等价的,它们就会互相引用。
我发现两个参考文献似乎暗示前三个在 VBscript 中是相同的(其中一切都是变体):CodeWiki、Herong。
似乎有些情况是 Excel 特有的。看来Excel中的空也指的是不包含任何内容的单元格,我认为这相当于表示该单元格未启动的变量。但“决策模型”网站表示,空性还指单元格值是否是最新的(“如果计算出的参数引用了未计算的单元格,则该参数为空”)。但是该页面在一个地方说要测试 using vbEmpty,而在其他地方说要使用IsEmpty。
IsEmpty我发现两个 StackOverflow 问题讨论了和Empty( 1 , 2 )的关系,但没有讨论其他两种方法。
应用于数组时似乎也可能存在细微的差异。
我在 GitHub 上找到了以下代码片段,这意味着 ifVarType(Obj) = vbEmpty的值IsEmpty(Obj)仍然可能为 true 或 false:
Select Case VarType(Obj) …Run Code Online (Sandbox Code Playgroud) 假设我有一个生成对象集合的进程。对于一个非常简单的示例,请考虑$(1 | get-member). 我可以获得生成的对象的数量:
PS C:\WINDOWS\system32> $(1 | get-member).count
21
Run Code Online (Sandbox Code Playgroud)
或者我可以用这些物体做点什么。
PS C:\WINDOWS\system32> $(1 | get-member) | ForEach-object {write-host $_.name}
CompareTo
Equals
...
Run Code Online (Sandbox Code Playgroud)
只有 21 个对象,执行上述操作是没有问题的。但如果该过程生成数十万个对象怎么办?然后我不想运行一次该进程只是为了计算对象,然后再次运行它来执行我想要对它们执行的操作。那么如何获取通过管道发送的集合中的对象计数呢?
之前曾问过类似的问题,接受的答案是在适用于集合的脚本块内使用计数器变量。问题是我已经有了那个计数器,我想要的是检查该计数器的结果是否正确。所以我不想只在脚本块内计数。我想要对我通过管道发送的集合的大小进行单独、独立的测量。我怎样才能做到这一点?
Stack Overflow 问题“将 Outlook 链接到 Access”有一个详细的答案,首先添加对“Microsoft Office x.0 Access 数据库引擎对象库”的引用。在 Outlook VBA 中,我的参考列表有两项:
第一个显然是 Thomas G 的答案所指的,但第二个看起来非常相似。它们都适用于同一版本的 Microsoft Access。
请注意,Excel 和 Outlook 的参考仅:
除了 Access 的库之外,没有其他库的名称以“Microsoft Office 16.0”开头。
这两个库有什么区别?在什么情况下我会使用其中之一?