Excel->;Outlook VBA:根据数据模型创建的电子邮件透视表
我真的以为我能自己解决这个问题 我每天早上都有很多工作报告Excel->;Outlook VBA:根据数据模型创建的电子邮件透视表,excel,vba,outlook,Excel,Vba,Outlook,我真的以为我能自己解决这个问题 我每天早上都有很多工作报告 这些报告是从数据模型创建的两个透视表的组合 (他们有日期和团队的过滤器,每天表格的大小都不同) 我想按下一个按钮,让Excel将这两个数据透视表复制到Outlook电子邮件中,然后发送出去 我可以让Excel选择一个数据透视表,将其复制到剪贴板,打开新的Outlook电子邮件,填写“收件人:抄送:”和“主题”字段,但我无法让它粘贴任何内容--我甚至无法让它选择多个数据透视表进行复制 --我尝试过的事情:--- 其中包含一些非常好的代码
这些报告是从数据模型创建的两个透视表的组合
(他们有日期和团队的过滤器,每天表格的大小都不同) 我想按下一个按钮,让Excel将这两个数据透视表复制到Outlook电子邮件中,然后发送出去 我可以让Excel选择一个数据透视表,将其复制到剪贴板,打开新的Outlook电子邮件,填写“收件人:抄送:”和“主题”字段,但我无法让它粘贴任何内容--我甚至无法让它选择多个数据透视表进行复制 --我尝试过的事情:---
- 其中包含一些非常好的代码,但它不选择透视表。我将部分代码调整为
,但它不会将数据透视表粘贴到Outlook电子邮件中Set PvtTbl=Worksheets(“Sheet1”)。数据透视表(“数据透视表1”)
- -当我尝试此操作时,会出现错误:“ByRef参数类型不匹配”。我假设这是因为函数希望接受一个范围,而透视表的选择不是一个范围
.HTMLBody=rng
放进去,希望能做点什么,但所做的只是将数据透视表名称(数据透视表1)粘贴到主体中
因此,我尝试寻找如何使用VBA将数据透视表转换为一个范围。可方便地了解.TableRange1,尽管将
.HTMLBody=rng.TableRange1
或将rng定义为
Set rng=工作表(“表1”)。数据透视表(“数据透视表1”)。表范围1
仅显示错误“类型不匹配”
- ,但如果我
则会出现错误“参数数量错误或属性分配无效”Set rng=Worksheets(“Sheet1”).Range.PivotTables(“PivotTable1”)
- ,但它有一个固定的范围
- ,但它开始复制到新工作簿,然后在将其放入Outlook之前创建一个.html文件。这看起来太复杂了,我希望在走到这一步之前能有一个更优雅的解决方案
- 我试着录制宏、选择透视表、复制、粘贴到Outlook。它给了我这个:
ActiveSheet.PivotTables(“PivotTable1”).PivotSelect“”,xlDataAndLabel,True
选择。复制
所以当我这样做时:
我得到了错误“Expected:end of statement”,它在上面突出显示了.HTMLBody=ActiveSheet.PivotTables(“DVS1”).PivotSelect“”,xlDataAndLabel,True
”
- 我尝试修改
。选择
到
rng的名称。选择
和
设置rng=工作表(“Sheet1”)。数据透视表(“PivotTable1”)。根据建议选择
,但我得到错误:“对象不支持此属性或方法”