问题标签 [excel-addins]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1812 浏览

excel - VBA 加载项问题

我在 Excel 2010 中遇到了 VBA 加载项问题。

我创建了一些代码来解析我的 excel 数据。我把它做成了一个插件。

但是,当我加载加载项并运行时,会发生错误。

错误消息说:runtime error 91 object variable or With block variable not set

错误指向rowSize = ActiveSheet.Rows.Count

有谁知道如何解决这个错误?

这是代码,

谢谢!

0 投票
3 回答
409 浏览

c# - Excel 插件 - Delphi 相当于 VB

我正在将一个 Excel 加载项从 Visual VB 移植到 Delphi 2006。它大部分都在工作,但我被困在这两条 VB 行上:

其中 oXL 定义为 Excel.Application。

在 Delphi ExcelApplication.Selection 中需要索引,但在 VB 中不需要。我在 C# 中也找不到类似的东西。我已经尝试过 ExcelApplication.ActiveCell,只要存在现有查询,它就可以工作,否则 Excel 会崩溃。

有谁知道这对于 Delphi 或 C# 意味着什么?

此外,如果 oXL.Selection 是一个接口,您如何执行 oXL.Selection <> ""?

谢谢你。

0 投票
1 回答
618 浏览

excel - VBA 加载项问题

我想在加载项加载时运行我的代码。(打开excel文件->加载插件->运行代码)

但我对事件处理程序有疑问。

我不知道我需要使用哪种事件处理程序以及如何加载已安装的插件。

(我尝试使用 Workbook_open 处理程序,但我认为这是错误的)

我尝试使用 Workbook_AddinInstall() 事件处理程序,然后在安装加载项时,它可以工作。但是为了使我的代码工作,我每次都需要重新安装加载项。

以及如何运行已在加载项列表中的加载项。

这是我的代码,

谢谢你。

0 投票
1 回答
242 浏览

com - 用 COM 插件替换 Excel XP 中的打开文件对话框

我正在为 Excel XP 开发 C# 插件,我需要使用自己的对话框处理文件打开和保存事件。我设法通过(基本上)处理 Excel 应用程序对象上的 WorkbookBeforeSave 事件并取消默认行为来做到这一点。有一个 WorkbookOpen 事件,但它在文档打开后触发,而不是在用户单击“打开”按钮或按 Ctrl-O 时触发。

这是一个类似的问题,尽管该解决方案适用于更高版本的 office,并且对我不起作用:Replacing Word's Open File Dialog in a COM Add-in

我不能简单地自定义正常的文件打开对话框——我需要完全替换它。有任何想法吗?

0 投票
0 回答
77 浏览

visual-studio-2010 - excel addin taking forever to build in visual studio 2010

Does visual studio hit some server somewhere when building an excel addin? Since Sep 28 2011, I have noticed that just creating a default excel addin takes several minutes to build every time.

Does anyone know what is going on here? I noticed that if i physically disconnect my internet connection the build completes within a second or two, otherwise it takes several minutes. Is there something I can do to stop this annoying garbage?

Thanks!

0 投票
2 回答
806 浏览

excel - 如何使 XLAM UDF 调用可移植?

似乎当我在 XLAM 文件中调用 UDF 时,XLAM 文件的路径嵌入在电子表格中。当我从另一台机器(安装了相同的 XLAM 插件,只是安装到不同的路径)打开电子表格时,Excel 会抱怨“此工作簿包含指向其他数据源的链接......”这似乎不是XLL 中的 UDF 存在问题。有没有解决的办法?

0 投票
1 回答
994 浏览

c# - Excel Automation Addin 函数返回 excel 范围

我正在使用 c# 编写一个 Excel 2003 自动化插件。

我已经关注了这篇文章http://blogs.msdn.com/b/eric_carter/archive/2004/12/01/writing-user-defined-functions-for-excel-in-net.aspx

每件事都有效,包括将 excel 范围对象作为参数传递。但我无法从我的函数中返回范围对象。我对主题的了解非常有限,将不胜感激任何投入。

0 投票
1 回答
388 浏览

c - 我可以用 Excel12 交换 Excel4 吗?

Excel C API中,Excel4和Excel12函数有什么区别?

从在线文档中我读到 Excel12 是最新版本,但现在提到了可能的差异。

我可以用 C++ 代码中的 Excel12 替换所有 Excel4 调用吗?

谢谢你。


Excel 2010,Windows 7

0 投票
1 回答
654 浏览

c# - 同时使用 VBA 和 ActiveX 插件时出现 Excel 错误 406。

我的Excel插件(XLL AddIn,叫它MyAddIn)是用 C#、ExcelDNA、NetOffice、VS2010 构建的。客户端有另一个插件(我们称之为B),我猜它是用 VBA 编写的。客户说B没有MyAddIn. 一旦MyAddIn安装,B失败并出现错误:

错误代码:406 错误消息:无法在此宿主应用程序中从 ActiveX DLL、ActiveX 控件或属性页显示非模态表单。

我确实看到了这个 Microsoft 资源,但我不想只是告诉客户B插件需要更改。我想做一些事情来避免这种情况发生。

以下是报告查看问题的步骤:

  1. 安装 B 插件后,它不会为 Microsoft Excel.
  2. 安装后MyAddin,它会为 Microsoft 生成一个注册表项Excel
  3. 这里的注册表项基本上告诉插件应该在启动时打开Excel,所以B插件没有启动,Excel工作正常,MyAddIn工作正常。
  4. 现在,当B插件启动时,它会给出上面显示的 406 错误。
  5. 我们可以忽略错误并继续使用B插件;禁用MyAddIn是解决方法。
  6. B插件启动时,我们看到它MyAddIn在插件之前先加载B,然后得到 406 错误。
  7. 当我们卸载时MyAddIn,不再遇到此错误,一切正常。
  8. 为了消除此错误,我们尝试更改注册表顺序以使B插件始终在MyAddin.
    • 这行得通,但这对 Microsoft 来说是一个全局更改Excel,这意味着B插件将始终打开,即使我们仅启动Excel。这是不希望的,因为B插件不能让用户使用静态数据,因为B插件会不断刷新实时。这就是B插件不在注册表设置中创建条目的原因。因此,注册表更改不是一种选择。我们不能总是在打开B时打开插件Excel
0 投票
2 回答
10386 浏览

c++ - 我不希望我的 Excel 加载项返回一个数组(相反我需要一个 UDF 来更改其他单元格)

我创建了一个 Excel 加载项,并且此加载项的功能之一,假设New_Years当前需要 2 年,并在这 2 年之间的每个元旦输出为 Excel 中的数组。因此New_Years(2000,2002)将在最后一个单元格中返回 2000 年 1 月 1 日、2001 年 1 月 1 日和 2002 年 1 月 1 日。

问题是我必须知道那个时间会有3个日期,选择3个单元格,在顶部单元格中输入我的公式,然后点击Ctrl + Shift + Enter填写数组。

我使用 XLW 版本 5 将我的 C++ 代码转换为 .xll 文件。如果有某种方法可以用我的公式填充一个正方形,我真的很喜欢它,Excel 会根据需要用适当的日期填充下面的正方形。有谁知道这是否可能?还是不可能?

非常感谢!