Visual Basic无法识别衔接途径

时间:2017-05-26 16:38:08

标签: vba excel-vba if-statement outlook-vba excel

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 ....这不打开工作表

我的问题:

  1. 为什么通路无法识别?

  2. 为什么自动人口不起作用?

  3. 我认为第二个问题与第一个问题有内在联系,但如果不是,我会逐字地从第一行的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
    

1 个答案:

答案 0 :(得分:0)

不幸的是,我不知道你在问题中描述的方法(GetNamespacePickFolder),所以我不能提供很多帮助。但是由于没人在最后一小时回答你,我敢写一些提示。首先,尝试准确地解决您的问题(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中添加一个表达式来窥视可能出错的内容。

相关问题