Tag: 加载项

findExcel加载项库path

我有一个Excel加载项,我试图让自己安装到Excel加载项path。 该加载项可以安装在两个位置之一,在用户configuration文件,或在MS Office安装。 后者是可取的,因为我不想担心系统pipe理员关于新用户login和看不到我的加载项。 然后是find办公室的安装path的问题,有registry项,你可以查看它,但你需要查找的Excel GUID,可以有十几个+排列,从版本,体系结构,msi到点击运行等等(所有这些我都找不到)。 或者是已知的办公室安装path的预定义列表,也是十几个排列组合。 然后是体系结构问题,一个32位的插件不会运行在64位的办公室,反之亦然。 然后有问题的办公室32位可以安装在64位程序文件,谢谢微软! 所以我想出了以下批处理脚本。 我担心有其他的办公室安装path,我不知道…? 我正在尝试与Office 2007 – 2016兼容。 任何我忽略了将非常感激。 干杯 詹姆士 @ECHO off SET FROM=%1 SET FROM=%FROM:"=% ECHO "installed in %FROM%" SET INSTALLED=0 SET XLL_FILEx64=ChiefExcelInterfaceAddIn64-packed.xll SET XLL_FILE=ChiefExcelInterfaceAddIn-packed.xll SET PFx86=%ProgramFiles(x86)% echo "PFx86=%PFx86%" REM "32-bit OS" IF "%PFx86%" == "" ( SET PFx86=%ProgramFiles% ) setlocal EnableDelayedExpansion for %%x in ( […]

缩放从excel插件打开的对话框中的问题

我们创build了一个exceladdin,通过点击一个自定义function区button来打开许多winform诊断图。 在更高的dpi机器上,winform对话框会失真。 作为单独项目的一部分,相同的对话框可以正常工作。 简而言之,从exceladdin打开winform对话框时不能正常工作。 到目前为止, 我们已经将AutoScalingMode设置为Dpi – 没有帮助。 我们已经看了AutoScalingDimensions&CurrentAutoScalingDimensions,他们仍然出于某种原因。 我们也可以通过在每个表单的load方法中调用下面的行来解决这个问题。 但是我们不确定它是如何工作的,因此不要相信它能在所有情况下解决我们的问题。 float width_ratio = (Screen.PrimaryScreen.Bounds.Width / 1920); float heigh_ratio = (Screen.PrimaryScreen.Bounds.Height / 1080); SizeF scale = new SizeF(width_ratio, heigh_ratio); this.Scale(scale);

C#加载项Excel:ActiveSheet

对于我的第一个AddIn Excel,我想select工作表活动和计数表中的列和行。 我在自定义function区中创build了一个button。 private void AddValues_Click(object sender, RibbonControlEventArgs e) { int lastRow; int lastColonne; lastRow = Globals.VATTools.Application.Selection.Rows.Count; lastColonne = Globals.VATTools.Application.Selection.Columns.Count; System.Windows.Forms.MessageBox.Show("Row : " + lastRow + " " + "Columns : " + lastColonne); Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = true; Microsoft.Office.Interop.Excel.Workbook xlWb = xlApp.ActiveWorkbook as Microsoft.Office.Interop.Excel.Workbook; Microsoft.Office.Interop.Excel.Worksheet xlSheet = xlWb.ActiveSheet; Microsoft.Office.Interop.Excel.Range range = […]

在复制工作簿后,Excel菜单被禁用

更新 :问题似乎与加载项的用户窗体有关。 我的解决方法是使用.SaveAs,closures复制的工作簿,卸载表单,然后重新打开复制的工作簿。 任何想我做错了什么? 我有一个VBA插件,有一个简单的例程,打开一个工作簿,使用.SaveAs来创build一个副本,然后结束。 复制的工作簿保持打开状态,看起来没问题,但是所有的Excel菜单都是禁用的。 如果我切换到另一个工作簿并返回,菜单似乎被重置/启用。 有关如何解决此问题的任何想法? 这是我的菜单代码: Public Function fxCreateMenu() As Integer Dim cbControl As CommandBarControl, bControlExists As Boolean On Error Resume Next With Application.CommandBars("Worksheet Menu Bar") .Visible = True '\Check if Menu is already loaded For Each cbControl In .Controls If cbControl.Caption = gsMenuName Then bControlExists = True Exit For End If […]

如何从内存中删除/卸载VB6 Excel COM加载项,而不卸载它?

我想知道如果有人知道我怎么能去从Excel环境(即卸载它),通过代码,但不卸载它的VB6 COM加载项 ? 我已经尝试设置相应的COMAddin“连接”属性为false,如下面的代码: MyExcellApp.COMAddins("myComAddin").Connect = False 虽然这样做是从内存中卸载加载项,但Excel在重新启动时不会再次加载它。 也就是说, COM加载项实际上是卸载的,必须重新安装(通过Excel的COM加载项菜单选项)才能重新运行。 我为什么要这样做? 那么,我正在创build一个相当复杂的COM插件 ,我想给最终用户一个机会来卸载它,如果他们觉得这是在干扰他们的环境。 它将像加载项的“退出”button一样,但只要重新启动Excel ,它就应该允许加载项再次加载。

无法加载Excel 2003加载项

我试图开发一个使用Visual Studio 2008(SP1)的Excel 2003外接程序。我没有添加Visual Studio添加的样板代码。 当我在VS中运行应用程序时,会加载Excel,但加载项本身不起作用。 “COM加载项”窗口列出加载项,但未选中。 “加载行为”读取为“未加载。加载COM加载项期间发生运行时错误”。 即使我已经启用debugging>例外下的所有选项,VS在加载时无法捕获exception。 我也尝试设置VSTO_SUPPRESSDISPLAYALERTS环境variables,如MSDN文章中提到的。令人惊讶的是,也没有显示任何消息。 我在Windows XP下运行Office 2003(SP3)。如果有人能帮助我,那将会很棒。 谢谢。

Excel COM加载项对话框中断脚本

我已经用C ++编写了一个Excel COM加载项,用于使用VBA自动化Excel。 它包含一个自己的对话框,显示有关加载项的一些一般信息。 现在我在Excel中创build一个button,打开对话框。 使用退出键保留对话框将导致Excel消息,脚本被中断,而不是仅仅closures对话框。 我可以用下面的方法抑制中断信息: Application.EnableCancelKey = xlDisabled 但是,这似乎不是解决scheme,因为脚本不能再被打断了。 这里是我如何使用VBA打开对话框的一个例子: Private Sub ShowAboutDialog_Click() Dim oComAddIn As COMAddIn Set oComAddIn = Application.COMAddIns.Item("MyComAddIn.Example") oComAddIn.Connect = True Call oComAddIn.Object.ShowAboutDlg End Sub 我的猜测是这个问题是在对话框的消息处理程序中的某个地方: INT_PTR CALLBACK CAboutDialog::AboutDlg( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { … case WM_COMMAND: if (LOWORD(wParam) == IDOK || LOWORD(wParam) == […]

错误1001将命令发送到应用程序时发生错误

COM Excel的AddIn,C#,VS2008偶尔当我安装/卸载我的AddIn时发生错误。 有时我看到错误1001指定的文件无法find 任何人都知道是什么原因造成的以及如何解决 谢谢 我使用Windows安装程序 http://msdn.microsoft.com/en-us/library/2w2fhwzz%28v=VS.90%29.aspx说如果使用[TARGETDIR],它应该像“[TARGETDIR] \”或“[TARGETDIR]” 。 我只是在CustomActionData中使用/ filepath =“[TARGETDIR] myinstallfile” 我不明白的是它几乎所有的时间,偶尔失败也即使我改变这个包括空格或反斜杠,我不知道是否修复问题,因为这个问题并没有发生每一次。 任何人都有经验? 谢谢

安装程序先决条件在VS2010安装项目

VS2010安装项目,Excel AddIn,C#,ExcelDNA,NetOffice 我使用VS2010安装程序创build安装程序。 单击安装项目的先决条件属性,我看到Windows Installer 3.1和Windows Installer 4.5列在先决条件列表中。 在VS2008中,我检查了Windows Installer 3.1的先决条件(尽pipe我不知道为什么?)。 在VS2010中,我不知道我应该检查Windows Installer 4.5的先决条件列表。 我想知道我是否需要检查它,为什么? 另一件事是共享加载项支持Microsoft .NET Framework 2.0更新(KB908002)也被列在先决条件列表中。 不知道我是否需要它? 我的AddIn是目标.NET 35 Sp1 在VS2008中,我的addIn目标是.NET framework 3.5 sp1,现在我转到VS2010,在安装项目中,我可以检查.NET 3.5 SP1或.NET 4.0作为先决条件。 我的目标.NET框架必须与先决条件列表中的版本相同吗?

如何强制xlTypeNum使用Excel 2007 SDK在C ++中加倍

那么我试图通过开发一个Excel加载项我的方式。 我正在尝试使用Excel 2007 SDK中的示例代码作为指导。 我很难试图在Excel中显示一个doubletypes的数据。 假设在执行示例代码时调用DisplayDouble(),并且使用DisplayDouble(12.3)等实型数据的参数调用某个调用时,如果我尝试使用引用实际types数据的参数从单元格,如DisplayDouble(A1)Excel工作表中的单元格A1具有值12.3的示例代码不起作用 您可以在本段下面看到示例代码。 任何提示将帮助我沿着学习阶梯前进 _declspec(dllexport) LPXLOPER12 WINAPI DisplayDouble (LPXLOPER12 n) { static XLOPER12 xResult; XLOPER12 xlt; int error = -1; double d; switch (n->xltype) { case xltypeNum: d = (double)n->val.num; if (max < 0) error = xlerrValue; xResult.xltype = xltypeNum; xResult.val.num = d; break; case xltypeSRef: error = Excel12f(xlCoerce, &xlt, 2, […]