Tag: excel addins

何时为Excel Addin设置MacroOptions

我在做一个Excel插件。 它由一个模块中的几个函数组成,如下所示: Public Function MyFunctionOne(X As Range, Y As Double) As Double MyFunctionOne = 1 'Example End Function Public Function MyFunctionTwo(X As Range, Y As Double) As Double MyFunctionTwo = 2 'Example End Function Public Function MyFunctionThree(X As Range, Y As Double) As Double MyFunctionThree = 3 'Example End Function 我已经将整个事情保存为一个.xlam Excel Addin。 所以每当我开始一个新的电子表格,这些function是可用的。 我最近了解到,我可以将我的function分配给一个类别,这真的很有帮助。 […]

GetDataObject请求剪贴板操作没有成功0x800401D0

我为Excel(2016)做了一个AddIn,将打印区域保存为jpg文件。 它运行好几个月。 现在我收到越来越多的用户错误报告,都得到相同的错误(下图)。 用户有Excel 2013的Windows 7或Excel 2016的Windows 10,都有这个错误。 在第一次重新安装我的程序帮助,但从现在起并没有帮助。 这是我的代码: public static void Save(string report, string area, RibbonControlEventArgs e) { Excel.Window window = e.Control.Context; Excel.Worksheet sheet = ((Excel.Worksheet)window.Application.ActiveSheet); Excel.Range range = sheet.Range[sheet.PageSetup.PrintArea]; range.CopyPicture(Excel.XlPictureAppearance.xlPrinter, Excel.XlCopyPictureFormat.xlPicture); range.Copy(Type.Missing); string fileName = @"\\server.company.lan\report.jpg"; if (Clipboard.GetDataObject() != null) { IDataObject data = Clipboard.GetDataObject(); Image image = (Image)data.GetData(DataFormats.Bitmap, true); image.Save(fileName, ImageFormat.Jpeg); […]

如何解决这个错误,“基类”Microsoft.Office.Tools.Ribbon.RibbonCollectionBase“不能被devise为”

每当我尝试添加一个新的function区到我的Excel 2010插件项目中,我会收到以下警告消息 devise者不能显示这个文件,因为它里面的任何类都不能被devise出来。 devise师在文件中检查了以下类: Ribbon2 —无法devise基类“System.Object”。 ThisRibbonCollection —基类 “Microsoft.Office.Tools.Ribbon.RibbonCollectionBase”不能被devise。 另外,如果我们在Ribbon1.Designer.cs中查看代码,错误指向这一行: base.Dispose(disposing); 我不知道那里出了什么问题。 我在这里是否缺less其他的Office程序集? (在我的项目中,我有Microsoft.Office.Core , Microsoft.Office.Interop.Excel , Microsoft.Office.Tools , Microsoft.Office.Tools.Common , Microsoft.Office.Tools.Excel , Microsoft.Office.Tools.Common.v4.0.Utilities , Microsoft.Office.Tools.v4.0.Framework ) 谁能帮忙? 谢谢。

如何从C#中的System.Drawing.Color转换为Excel.ColorFormat? 更改评论颜色

我正在开发一个Excel的vsto插件,我试图将颜色更改为Excel中的注释。 这是我有的代码: Excel.Range activeCell = _application.ActiveCell; activeCell.AddComment("some text")); activeCell.Comment.Shape.Fill.BackColor = Color.Red; 我得到的例外是: 不能将types“System.Drawing.Color”隐式转换为“Microsoft.Office.Interop.Excel.ColorFormat” 我找不到如何在两种格式之间进行转换。

在Excel中自动添加一个加载项的单个菜单项

我正在使用Microsoft Excel 2010 for Windows。 我已经开发了一个插件addin.xlam ,其中包含一个子main 。 addin.xlam是在正确的位置,以便通过菜单Developer -> Add-Ins可见和可选。 当我打开一个正常的工作簿test.xlsm ,然后按Alt + F11 ,我可以看到addin.xlam的代码被加载。 我的目标是添加一个菜单项到Excel的菜单栏,允许用户启动add-in.xlam 。 通过下面这个链接 ,我在addin.xlam代码如下: Option Explicit Dim cControl As CommandBarButtonPrivate Sub Workbook_AddinInstall() On Error Resume Next 'Just in case 'Delete any existing menu item that may have been left. Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete 'Add the new menu item and […]

Excel 2007插件 – 技术选项

我们有一些.xla / .xlam Excel加载项,现在已经到了迁移到更容易版本控制和维护的时候了。 如果可能,我想用C#编写,Addins需要做以下几件事情: 将用户定义的函数提供给Excel 在Excel工作表中创build和操作命名区域 从外部来源提取数据并填充Excel工作表中的单元格 目前所有这一切都可能和简单的与.xlam做什么是移动到VSTO或创build一个C#地址(我注意到VS2010有一个新的项目选项创buildExcel 2007插件)的优点/缺点。 有没有什么好的文件来源? 谢谢戴夫

简单的C#Excel加载项function区button添加到颜色单元格

首先,非常感谢任何人阅读这个问题,并可以提供帮助。 我唱VS2010,并使用向导创build了Excel 2007加载项目,然后向我的项目中添加了一个名为Ribbon的新文件夹,并在其中创build了一个Ribbon(Visual Designer)的New Item。 从这里我已经添加了一个新的function区和一个新的button。 我双击新的button,并提供这个代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Tools.Ribbon; using System.Xml.Linq; namespace UploadFCStats.Ribbon { public partial class FCRibbon { private void FCRibbon_Load(object sender, RibbonUIEventArgs e) { } private void button1_Click(object sender, RibbonControlEventArgs e) { } } } 现在我想要做的就是给某些单元格着色,或者在variables中存储一些值,然后创build一个到SQL服务器的连接,并使用插入语句来上传一些数据。 但是我似乎无法访问任何典型的Excel属性。 现在我是C#和Excel加载项的新手,但对C ++,Java和Excel有很好的理解。 在这种情况下,我所search到的没有任何帮助。 我最好的猜测是我错过了一个库,但经过一些摆弄,似乎没有解决我的问题。 使用这个button,我如何从工作表中获取值? 我如何为单元格着色? 如何访问Excel中的公式函数? 谢谢!

Excel加载项:单元格的绝对位置

我怎样才能find某个单元格的绝对坐标像素? 我正在开发一个Office 2010插件(function区UI),并向function区中的新菜单添加一个新button,当按下button时,我想获取该单元格的屏幕位置。 问题是这样的 Globals.ThisWorkbook.Application.ActiveCell . Top / Left 只给出相对于电子表格的A1angular的位置,而我想要的位置相对于屏幕的0,0。 我发现这一点: 如何获得在C#中的Excel 2003单元格的屏幕X和Y,但它是为Office 2003,我不完全明白答案。 我正在使用C#进行开发,但VB也会这样做。 谢谢!

在当前实例中打开一个现有的Excel文件

我用C#语言编写了一个Excel Addin for Office 2013。 我知道有几种方法可以打开现有的Excel文件,但是所有这些文件都是在Excel上的新实例中打开的。 我有一个Excel的当前实例,并希望当有人点击一个button,新的文件打开当前isctance(不是一个新的)! 例如我使用下面的一段代码: Excel.Application excelApp = new Excel.Application(); excelApp.Visible = true; string workbookPath = (@"C:\Downloads\Sample.xlsx"); Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath, 0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); 但是这个代码在excel文件的新实例中打开Sample.xlsx。 任何想法? 提前致谢。

以编程方式安装的Excel加载项未加载

问题摘要:当我从程序菜单启动Excel时,为什么我的程序安装的加载项无法加载,但在打开安装它们的Installer.xlsm工作簿时加载了这些加载项? 详细信息:我的团队开发了组织中各种用户使用的加载项的层次结构。 我有一个Installer.xlsm文件,为每个加载项安装新版本。 它有一个Workbook_Open方法,在打开工作簿时卸载当前安装的加载版本并安装新版本。 这工作了一年多了。 最近我们更新了加载项的层次结构,从那以后,相同的脚本将成功运行,卸载旧的加载项并安装新的加载项。 但是,当Excel重新打开时(从程序菜单或现有的工作簿),脚本似乎根本没有任何作用 – 在运行之前安装的加载项仍保持安装状态,新加载项甚至没有列出在“pipe理加载项”窗体中。 这也反映在HKCU\…\Excel\Add-in Manager – 加载项列表与运行之前保持一致。 但是,如果我再次打开Installer.xlsm,它只会加载我希望在成功运行脚本后加载的加载项(加载新安装的加载项,并且不加载卸载脚本的加载项)! 就好像加载项安装在单个.xlsm文件的范围中一样… 笔记: 加载项不放置在Excel的加载项目录中,而是放置在项目文件夹(C:\ appname \ Addins \ date)中。 我在Windows 7上使用Excel 2010,并在我的计算机上拥有pipe理员权限。 这不是registry写入访问的问题,因为如果使用Excel UI安装的相同加载项在HKCU\…\Excel\Add-in Manager下正确注册。 请帮助解决这个谜! 执行卸载的代码部分: For Each ad In Application.AddIns For Each appName In pAppNames If pIniMap.item("FilePrefix").Exists(appName) Then filePrefix = pIniMap.item("FilePrefix").item(appName) If Left(ad.Name, Len(filePrefix)) = filePrefix Then If ad.Installed Then […]