问题标签 [xla]

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 投票
1 回答
11210 浏览

vba - Excel 2003 - 如何构建我自己的 XLA?

如果您想创建自己的 xla,如何制作 .xla 文件?我有代码、类、形状等......制作 xla 文件指向的过程是什么?我知道我必须把它放在我的程序文件文件夹中,然后完成在 xls 中添加“加载项”的步骤......但我的意思是实际保存一个 xla 文件以指向......

我可以简单地将所有这些都写在 xls 中,然后将其保存为文件类型 xla 吗?因为我试图这样做,但是当我在电子表格中试图指向它时,我得到一个错误,它不是一个有效的插件?

谢谢!

0 投票
3 回答
1843 浏览

vba - VBA: detecting if a library is available at run-time

I have an xla file that refers to some other Excel add-ins that may or may not be present on the target machine. Currently Excel fails on loading the xla with a "Compile error: Can't find project or library".

Code is something like:

Prefixing this with an "On Error Goto AddInMissing" doesn't help as this is seen as a compile error.

So, is there any way of late-binding/referencing an add-in by name in VBA so that I can fail gracefully (disable certain features) if a certain add-in is not present?

0 投票
5 回答
11552 浏览

excel - 如何停止 Excel 存储 XLA 的绝对路径?

我有一个 XLA 文件,该文件将作为 Excel 加载项部署到组织中的许多用户。我的意图是将其部署到“Application Data\MyCompany”中用户的“文档和设置”文件夹中的目录中。(事实上​​,这一切都是通过一个在本地复制最新版本的 XLA 并将其安装为 Excel 插件的包装器进行的)。

但是,如果用户创建引用此 XLA 中定义的函数的工作表,则 Excel 似乎将 XLA 的绝对路径存储在函数调用中。因此,如果用户将工作表发送给同事,Excel 无法解析函数,因为他们的 XLA 副本驻留在不同的绝对路径中(因为他们的用户名是绝对路径的一部分)。

到目前为止,我的信念是只要将 XLA 作为加载项安装,Excel“就可以解决”这个问题,但情况似乎并非如此。

我真的需要为所有用户的加载项强制执行相同的绝对路径吗?这在单个组织内是可能的,但老实说,我不敢相信这是真的,因为它严重阻碍了 XLS 文件的共享。

谢谢。

0 投票
0 回答
1358 浏览

c# - 加载项最小化启动时使 Excel 崩溃

我使用 C# WinForms 应用程序从我的 C# WinForms 应用程序中启动 Excel Process.Start(...)(这是有原因的)。我想在后台启动它,而不会分散用户的注意力,所以我尝试以最小化或隐藏的方式启动它。在这两种情况下,我都会遇到一个非常奇怪的行为:

几秒钟后,Excel 恢复窗口(如果它被隐藏,甚至使其可见)然后崩溃说:“Microsoft Office Excel 遇到问题,需要关闭。(Win XP 崩溃消息。)”

如果我通过双击桌面上的快捷图标手动启动 Excel,然后立即切换到另一个应用程序窗口,则会发生同样的事情,这样Excel 窗口在启动过程中就会失去焦点。

仅当任何XLA 加载项包含 UserForm时,才会出现此问题。如果我删除用户窗体,问题就会消失。如果我删除加载项,问题就会消失。

任何帮助表示赞赏,只要它是

  • 解释为什么会发生这种情况
  • 我可以在加载项中更改的内容
  • 一种解决此错误的方法(不使用 COM)
  • 建议使用 COM。(请参阅此处以了解我为什么不这样做。)
  • 不是更新 Excel 的建议(我不能)

重现步骤:

  • 使用空工作簿启动 Excel 2007。
  • 另存为...
    • 文件类型:Excel 2003 加载项 (*.xla)
    • 位置:%APPDATA%\Microsoft\Excel\XLSTART\foobar.xla
  • Alt + F11(打开 VBA 编辑器)
  • 将用户窗体添加到项目中。
  • 保存并退出 Excel

  • 启动 Excel,然后立即单击 Firefox 或任务栏中的任何选项卡以激活 Excel 以外的任何窗口。

  • 等待并观察 Excel 启动,直到它崩溃。
  • 重新启动 Excel 后,它说:

    Excel 在使用“foobar”加载项时遇到了严重问题。如果您多次看到此消息,则应禁用此加载项并检查是否有可用更新。是否要禁用此加载项?


细节/发现:

  • Excel 版本:12.0.6535.5002,SP2 MSO 12.0.6425.1000
  • 0xA3 在他的评论中报告他可以使用 Excel 12.0.6535.5002、SP2 MSO 12.0.6535.5002 在 32 位机器上重现它
  • 我尝试过使用 2007 插件 (XLAM)。同样的问题,除了如果它不包含任何用户窗体,它甚至会崩溃。
  • 0xA3 报告说在他的 64 位机器上它可以工作,但是 Excel 仍然意外弹出(但没有崩溃)。到目前为止,我的测试人员的两台机器也是如此。

这是我想在 C# 中使用的代码(请注意,可以完全独立于任何 C# 应用程序来重现该问题,请参见上文)。

0 投票
1 回答
764 浏览

excel - 以编程方式从源代码构建 XLA

我有一个 VBA 插件的导出组件(即很多clsfrmfrxbastxt文件)的(版本控制)文件夹。有人可以给我一个构建脚本(可以是一个 VB 脚本,或者更复杂的),它采用这个文件夹的名称并产生一个(工作)XLA?

我知道您可以以编程方式修改 XLA 文件(例如这个问题),因此编写一个创建空 XLA 的脚本应该不会太难,然后遍历文件夹中的所有文件以将它们添加到其中...?

谢谢,

缺口

(编辑:Excel 2003,如果有任何区别)

0 投票
1 回答
610 浏览

c# - 安装其他 XLA 插件后,VSTO 中的 Excel 插件不起作用

我已经用 C# 开发了一个 Excel 插件,并且工作正常。但是由于我在 XLA 文件中安装了另一个用 VBS 编写的插件,所以我的 C# 插件不再工作了......以前有人遇到过这种情况吗?我该如何着手解决这个问题?我可以在我的插件之前创建一个 XLA 文件来强制它加载吗?最好的问候萨布里,

0 投票
4 回答
4244 浏览

excel - 可以判断哪个工作簿调用了 Excel 加载项 (xla) 中的函数

我想在我将从许多不同的工作簿中调用的 excel 加载项中编写一个小日志记录功能。我希望能够通过仅传递日志文本来调用它,并且日志函数本身可以处理时间戳、工作簿名称等。

但是,我不能使用 ThisWorkbook 或 ActiveWorkbook 来确定哪个工作簿负责进行调用,因为 Thisworkbook 将返回对加载项本身的引用,而在 Excel 中具有活动焦点的工作簿以外的工作簿中运行的 VBA 代码可以拨打电话,但 ActiveWorkbook 将返回窗口中具有焦点的那个。

Application.Caller 看起来像是一个可能的解决方案,但这似乎只在从单元格调用函数时才有效,而不是从 VBA 调用。

我想做的事是不可能的吗?

更新

根据 > 1 人的说法,这实际上是不可能的。如果有人碰巧知道一些聪明的解决方法,请说出来。

0 投票
1 回答
268 浏览

excel - 使用 Excel 2003 创建的 VBA 在 Excel 2007 中加载正常,但 VB 编辑器的项目树中没有任何内容

我在 excel 2003 中创建了一个 VBA,并将其保存为 xla 格式。该插件在 Excel 的工具栏中添加了一个新菜单和一些子菜单。一切正常,直到我升级到 Office 2007,然后我打开 xla 文件。没有显示错误消息,但是当我查看宏列表时,那里没有项目。我打开 Visual Basic 编辑器。我的旧项目(名为 ML)仍然存在,但项目树中没有任何内容,只是添加新空白项目时的默认文件。我用记事本打开 xla 文件,我的变量、函数名仍然存在。任何人都有这种奇怪行为的经验,请给我一个线索。提前致谢。

0 投票
2 回答
3284 浏览

excel - 在 Excel 中创建/使用自定义 VBA 库

我一直在为我的团队在工作中使用一个项目。Excel 2003 电子表格位于 NT NFS 上,因此他们都可以使用它。我喜欢 XLA,但关于它们的一件烦人的事情是,它们似乎并不依赖于工作簿。为一个人安装它会为其他人安装它,反之亦然。在编译时使用其他语言,您可以轻松地链接特定源文件的库。

我想知道是否有可能拥有依赖于工作簿的 Excel VBA 自定义库以及如何做到这一点?谢谢

0 投票
1 回答
2464 浏览

excel - 工作簿打开时如何加载 sapbex.xla

我从 SAP BW 打开一个查询...我进行了所有我需要的更改,我什至在每次打开工作簿时都选中了刷新查询框。问题是当我重新打开工作簿时,它就像一个普通的 Excel,因为 SAPBEX.xla 文件不再加载。关于如何解决这个问题的任何想法?

我希望每次打开工作簿时都使用最新数据更新工作簿。谢谢!