在Excel 2016中运行宏时,在Windows窗体上使用Microsoft.Office.Interop.Excel打开xlsm会禁用Excel选项

问题描述

我正在尝试使用以下代码打开xlsm(启用Excel宏的工作簿)作为VB.NET中Windows窗体的子窗口。

xlsm作为Forms的子级被打开,但是在运行宏时,所有选项(例如File,Home,insert)在xlsm中均显示为灰色。

代码

导入System.Runtime.InteropServices 导入Excel = Microsoft.Office.Interop.Excel 公开课表格2 将hwnd1作为IntPtr 私有子Form2_Load(作为对象发送,作为EventArgs发送)处理MyBase.Load

    Dim excApp As New Excel.Application()
    excApp.Visible = True
    Dim wb As Excel.Workbook = excApp.Workbooks.Open("C:\xxyy\SampleMacro.xlsm",[ReadOnly]:=False)

    hwnd1 = CType(excApp.Hwnd,IntPtr)
    SetParent(hwnd1,Me.Handle)
    MoveWindow(hwnd1,Me.Width,Me.Height,True)
End Sub

<DllImport("user32.dll")>
Public Shared Function SetParent(hWndChild As IntPtr,hWndNewParent As IntPtr) As IntPtr
End Function

<DllImport("user32.dll")>
Public Shared Function MoveWindow(hwnd As IntPtr,x As Integer,y As Integer,nWidth As Integer,nheight As Integer,repaint As Boolean) As Boolean
End Function

结束班级

环境: 操作系统名称:Microsoft Windows 10 Enterprise 操作系统版本:10.0.15063 N / A内部版本15063

系统类型:基于x64的PC

Excel版本:Office 365 MSO(16.0.12527.21230)32位的Microsoft Excel

尝试了各种Excel->信任中心->信任中心设置->宏设置,行为相同。

Microsoft.Office.Interop.Excel-版本:1.9.0.0

.Net框架4.8

请在运行宏后帮助以读写模式打开xlsm。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)