小编Bad*_*ing的帖子

如果 Excel 或 Word 已打开,ThisWorkbook Workbook_Open 无法显示用户窗体

我用的是Office365。我有一个名为 Test.xlsm 的 Excel 文件,其中包含一个名为 frmMain 的用户窗体。
在 ThisWorkbook 对象和 Workbook_Open 事件中,我有以下代码:

    Private Sub Workbook_Open()
       Worksheets("Main").Activate
       frmMain.Show
    End Sub
Run Code Online (Sandbox Code Playgroud)

它旨在每次打开 Test.xlsm 文件时启动(显示)frmMain 用户窗体。
但是,如果另一个 Excel 或 Word 文件已打开,则 frmMain 用户窗体无法启动/显示。
有没有办法让 Excel 或 Word 文件已打开,并且仍然能够启动和使用 Test.xlsm 文件及其用户窗体 frmMain ?这是Office365的问题吗?

更新:

还尝试将应用程序安全性设置为低,以防默认为 msoAutomationSecurityByUI:

Private Sub Workbook_Open()

dim frm As frmMain
Dim secAutomation As MsoAutomationSecurity

set frm = New frmMain
secAutomation = Application.AutomationSecurity

Application.AutomationSecurity = msoAutomationSecurityLow
Worksheets("Main").Activate
frmMain.Show

End Sub
Run Code Online (Sandbox Code Playgroud)

更新:

还尝试将其放在独立模块上(不在 ThisWorkbook 中):

Private Sub runForm()
   frmMain.Show
End Sub
Run Code Online (Sandbox Code Playgroud)

然后从 ThisWorkbook …

excel vba userform office365

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

显式转换

考虑以下代码:

using Microsoft.Office.Interop.Outlook;
using OutlookApp = Microsoft.Office.Interop.Outlook.Application;

namespace OutlookInterop
{
    class Program
    {
        static void Main(string[] args)
        {
            OutlookApp outlookApp = new OutlookApp();
            MailItem mailItem = outlookApp.CreateItem(OlItemType.olMailItem);
            mailItem.To = "test@test.com";
            mailItem.Subject = "Test Email Alert";
            mailItem.HTMLBody = "<html><body>Test email body.</body></html>";
            mailItem.Display(false);
        }
    }
}  
Run Code Online (Sandbox Code Playgroud)

当我在Visual Studio上运行该代码时,它运行良好,但是在BluePrism中使用它时,出现以下编译器错误:

Page: Send Email Alert c#
Stage: Code1
Type: Error
Action: Validate
Description: Compiler error at line 2: Cannot implicitly convert type 'object' to 'Microsoft.Office.Interop.Outlook.MailItem'. An explicit conversion exists (are you missing a cast?)
Repairable: …
Run Code Online (Sandbox Code Playgroud)

c# blueprism

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

标签 统计

blueprism ×1

c# ×1

excel ×1

office365 ×1

userform ×1

vba ×1