从http://www.techrepublic.com/blog/microsoft-office/quickly-export-outlook-e-mail-items-to-excel/复制的我的VBA代码将打开excel表,但也表示strPath不存在。它应该通过电子邮件中的一些信息自动填充,但不输入任何内容。我已经使用了这两种路径(原因在于它们之下)。
strSheet = "Job.xlsx"
strPath = "C:\Users\user\Documents\"
strSheet = strPath & strSheet
strSheet = "Job.xlsx"
strPath = "C:\Users\user\Desktop\"
strSheet = strPath & strSheet
位置(从右键单击,然后选择属性)是:
C:\ Users \ user \ Desktop ....这将打开工作表,但没有任何内容自动填充
如果我打开工作表,然后转到选项 - >保存,然后默认位置是:C:\ Users \ user \ Documents ....这不打开工作表
我的问题:
为什么通路无法识别?
为什么自动人口不起作用?
我认为第二个问题与第一个问题有内在联系,但如果不是,我会逐字地从第一行的URL中复制代码,并计划在获得工作原型后进行自定义。
更新
我使用了F8按钮,发现代码在此处达到了错误:
For Each itm In fld.Items
intColumnCounter = 1
Set msg = itm
intRowCounter = intRowCounter + 1
Set rng = wks.Cells(intRowCounter, inColumnCounter)
本节的基本代码如下:
For Each itm In fld.Items
intColumnCounter = 1
Set msg = itm
intRowCounter = intRowCounter + 1
Set rng = wks.Cells(intRowCounter, inColumnCounter)
rng.Value = msg.To
intColumnCounter = intColumnCounter + 1
Set rng = wks.Cells(intRowCounter, intColumnCounter)
rng.Value = msg.SenderEmailAddress
intColumnCounter = intColumnCounter + 1
Set rng = wks.Cells(intRowCounter, intColumnCounter)
rng.Value = msg.Subject
答案 0 :(得分:0)
不幸的是,我不知道你在问题中描述的方法(GetNamespace
和PickFolder
),所以我不能提供很多帮助。但是由于没人在最后一小时回答你,我敢写一些提示。首先,尝试准确地解决您的问题(fld
未定义?wks
未定义?等等。另外,我会尝试简化代码。例如:
intRowCounter = 1
For Each itm In fld.Items
wks.Cells(intRowCounter, 1) = itm.To
wks.Cells(intRowCounter, 2) = itm.SenderEmailAddress
wks.Cells(intRowCounter, 3) = itm.Subject
intRowCounter = intRowCounter + 1
Next
或者,如在您的架构中:
intRowCounter = 1
For Each itm In fld.Items
wks.Cells(intRowCounter, 1) = itm.To
wks.Cells(intRowCounter + 1, 1) = itm.SenderEmailAddress
wks.Cells(intRowCounter + 2, 1) = itm.Subject
intRowCounter = intRowCounter + 3
Next
但上述内容无法解决您的问题。您可以添加中断点(单击代码窗口的" margin")并将鼠标悬停在变量上以获取其值。您还可以在Watch Window中添加一个表达式来窥视可能出错的内容。