小编0m3*_*m3r的帖子

访问Outlook默认文件夹

我正在使用Outlook VBA应用程序,我需要访问我的收件箱,但我似乎遇到了一些麻烦.我正在使用该GetDefaultFoldder(olFolderInbox)方法,但是,我设置了多个电子邮件地址,但没有一个显示在我的个人文件夹的收件箱中.

所以我的问题是,这个默认文件夹在哪里定义?我如何知道哪个收件箱是默认收件箱?我知道还有这种GetFolderFromID方法,如果我使用它,

如何找到文件夹ID才能指向它?

这是我正在使用的代码.这是Timothy Chen Allen的博客上的Timothy的博客.代码:

Sub find_unread()
    On Error GoTo eh:
    Dim ns As Outlook.NameSpace
    Dim folder As MAPIFolder
    Dim item As Object
    Dim msg As MailItem

    Set ns = Session.Application.GetNamespace("MAPI")
    Set folder = ns.GetDefaultFolder(olFolderInbox)

    For Each item In folder.Items
        DoEvents
        If (item.Class = olMail) And (item.UnRead) Then
            Set msg = item
            Debug.Print msg.SenderEmailAddress
            msg.Display True
        End If
    Next

    MsgBox "All messages in Inbox are read", vbInformation, "All Read"
    Exit Sub
eh: …
Run Code Online (Sandbox Code Playgroud)

outlook vba outlook-2007

5
推荐指数
1
解决办法
1万
查看次数

从Outlook获取收件箱

我在Outlook 2010中配置了两个Exchange帐户,但是我无法找到如何到达第二个帐户的收件箱.Session.GetDefaultFolder()总是返回第一个.

甚至枚举Session.Accounts,找到正确的帐户并调用Session.Account(found one).Store.GetDefaultFolder()返回错误的收件箱(来自默认的交换帐户,而不是辅助帐户).

outlook vba outlook-object-model outlook-vba outlook-addin

5
推荐指数
1
解决办法
5836
查看次数

在Excel用户窗体中,如何更新标签的标题?

UserForm在Excel中创建了我的第一个无模式,并在其上放置了一个ActiveX标签.如何设置标签的标题以显示标签中的内容Sheet1.Range("A1"),并在单元格A1中的值更改时自行更新?

基本上,我希望Userform's标签始终更新Excel单元格中的第二个更改.谢谢!

excel vba label caption userform

5
推荐指数
1
解决办法
8万
查看次数

使用VBA发送消息时,在Outlook中更改"Item.To"值

我正在尝试在用户按下发送按钮时更改Outlook中"发送至"字段中的电子邮件地址.例如,如果当前Item.To值= 'aaa@example.com'它变为'bbb@example.com'.

我可以改变主题,但是没有使用Item.To(是安全问题吗?):

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

   If Item.Class <> olMail Then Exit Sub

   Item.To = "bbb@example.com"  ' Nope , It does not work
   Item.Subject = "New Subject" ' It works

End Sub
Run Code Online (Sandbox Code Playgroud)

谢谢

outlook vba outlook-vba

5
推荐指数
2
解决办法
6252
查看次数

按日期计算Outlook中的电子邮件

我有以下代码来计算outlook文件夹中的电子邮件数量.

Sub HowManyEmails() 
Dim objOutlook As Object, 
objnSpace As Object, 
objFolder As Object 
Dim EmailCount As Integer 
Set objOutlook = CreateObject("Outlook.Application") 
Set objnSpace = objOutlook.GetNamespace("MAPI")

    On Error Resume Next    
    Set objFolder = objnSpace.Folders("Personal Folders").Folders("Inbox").Folders("report's").Folders("Customer")    
    If Err.Number <> 0 Then    
    Err.Clear   
    MsgBox "No such folder."    
    Exit Sub    
    End If

EmailCount = objFolder.Items.Count    
Set objFolder = Nothing    
Set objnSpace = Nothing    
Set objOutlook = Nothing

MsgBox "Number of emails in the folder: " & EmailCount, , "email count" End Sub
Run Code Online (Sandbox Code Playgroud)

我试图按日期计算此文件夹中的电子邮件,所以我最终得到每天的计数.

outlook vba ms-office outlook-vba

5
推荐指数
1
解决办法
3万
查看次数

Sum函数不适用于具有公式的单元格

我有3个细胞配方.

A1:

=IF(B6>=3.3,"1","0")
Run Code Online (Sandbox Code Playgroud)

B1:

=IF(C6<7,"0", IF(C6<9,"1",IF(C6>=9,"2")))
Run Code Online (Sandbox Code Playgroud)

C1:

=IF(D6>85,"1","0")
Run Code Online (Sandbox Code Playgroud)

我的Cell D1想要总结上面的3个细胞.

=SUM(A1:C1)
Run Code Online (Sandbox Code Playgroud)

但这总是返回0.

但是当我这样做的时候

=A1 + B1 + C1 
Run Code Online (Sandbox Code Playgroud)

它将我的结果归还给我

为什么会这样?

excel excel-formula

5
推荐指数
1
解决办法
6万
查看次数

文件选择器,如何指定文件类型?

我有以下代码打开文件选择器,让用户选择一个文件.

Sub SelectFiles(ByRef test As String)

    Dim iFileSelect As FileDialog
    Set iFileSelect = Application.FileDialog(msoFileDialogFilePicker)

    Dim vrtSelectedItem As Variant  

        If iFileSelect.Show = -1 Then            

            For Each vrtSelectedItem In iFileSelect.SelectedItems
                test = vrtSelectedItem
            Next vrtSelectedItem

        End If

    Set iFileSelect = Nothing

End Sub
Run Code Online (Sandbox Code Playgroud)

我希望它只显示某种类型的文件(在本例中为XML),用户可以选择任何文件类型.

我经历过一些有创意的谷歌搜索,但似乎无法找到解决方案,我觉得它应该很简单.

excel vba excel-vba

5
推荐指数
1
解决办法
3万
查看次数

如何通过引用两个单元格自动命名电子表格?

我刚刚编写了一个spiffy宏来自动生成报告.它运行良好,但我需要它根据两个单元格中的数据自动命名电子表格.

本质上,此宏创建一个新的电子表格,将信息复制到它,并创建每月所需的相关数据透视表.

作为其中的一部分,我创建了一个仪表板,用于生成包含说明和报告所涉及的日期范围的报告.它目前创建电子表格" NEW REPORT ".有没有办法创建新的电子表格并自动命名为"Report 01.01.15 to 01.02.15"?

我将日期范围作为两个单独的单元格,我知道我必须确保日期范围是使用允许的字符(IE 01.01.15而不是01/01/15) - 我是是说有一种方法告诉用户他们用错误的分隔符输入日期?

excel vba excel-vba

5
推荐指数
1
解决办法
540
查看次数

何时需要工作簿名称中的扩展名?

我有一个 excel 文件目录,这些文件通过主文件中的 VBA 代码相互交互。

我以前从来没有遇到过这个问题,但是在复制整个目录以对副本进行一些开发工作(在不同的位置保持原件完好无损)之后,我在引用时遇到了“下标超出范围”的问题工作簿。

例如,之前使用这行代码一切正常(实际代码中没有任何更改):

现在抛出错误的代码(从未使用过):

ScheduleLocation = Workbooks("Master Schedule").Path
Run Code Online (Sandbox Code Playgroud)

但是,此行现在会引发错误。如果我用“Master Schedule.xlsm”替换“Master Schedule”,一切都会恢复正常。我以前遇到过这个问题,但我一直无法找出问题的根本原因。

不会抛出错误的代码:

ScheduleLocation = Workbooks("Master Schedule.xlsm").Path
Run Code Online (Sandbox Code Playgroud)

因此我的问题是:这是为什么?为什么名称(不带扩展名)有时不够用,有时又不合适?

excel vba

5
推荐指数
1
解决办法
340
查看次数

将图片插入Excel并使用VBA保持宽高比不超过尺寸

我正在将数据从Access数据库导出到Excel报表中,该报表中需要包含的部分是与数据相对应的图片。图片存储在共享文件中,并插入到Excel文件中,如下所示:

Dim P As Object
Dim xlApp As Excel.Application
Dim WB As Workbook

Set xlApp = New Excel.Application

With xlApp
     .Visible = False
     .DisplayAlerts = False
End With

Set WB = xlApp.Workbooks.Open(FilePath, , True)

Set P = xlApp.Sheets(1).Pictures.Insert(PicPath) 'Insert picture
With P
     With .ShapeRange
          .LockAspectRatio = msoFalse
          .Width = 375
          .Height = 260
     End With
     .Left = xlApp.Sheets(1).cells(y, x).Left
     .Top = xlApp.Sheets(1).cells(y, x).Top
     .Placement = 1
     .PrintObject = True
End With

WB.SaveAs FileName:= NewName, CreateBackup:=False 
WB.Close SaveChanges:=True

xlApp.DisplayAlerts = True …
Run Code Online (Sandbox Code Playgroud)

excel ms-access vba ms-access-2007 excel-vba

5
推荐指数
1
解决办法
1万
查看次数