问题标签 [excel-automation]

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 投票
0 回答
41 浏览

vba - 通过按钮进行多个自动枢轴(VBA)

我正在尝试实现自动化支持模板的目标。我正在处理的功能是创建一个按钮或下拉选择按钮,它将自动从 excel 表旋转到所需的数据透视表。下面的代码是在已经存在的工作表上创建一个数据透视表。我试图弄清楚如何在运行宏之前将我的宏更改为没有制作工作表的地方(除了上面有 excel 表的那个),一旦运行,它将自动创建新的工作表和数据透视表。这就是我被困住的地方。我尝试记录这些步骤,但如果我对代码进行更改,它会中断。

0 投票
1 回答
227 浏览

excel - VB6 Automation Error when calling Add on previously created MultiPage

I want to generate a bunch of MultiPages and create new Pages dynamically in my app, but i'm getting Run-time error '-2147417848 (80010108)': Automation error The object invoked has disconnected from its clients.

Steps to reproduce

In a Class Module named TestClass:

In a UserForm named TestForm:

When i right-click the UserForm twice, i get two MultiPages. Then i double-click the UserForm, expecting the first MultiPage to have a new Page. But i hit the automation error at TestInstance.createPage -> TestMultiPage.Add, even though all the variables seem present from the Locals window.

What am i missing?

Conclusion

Following @GSerg's answer, i suppose there's no way to do this with MultiPage. Instead i have to use TabStrip instead and emulate the other behaviour of MultiPage.

Just to add some context, i was trying to create a browser-like UI with windows and tabs (a TabStrip at the bottom representing different windows, each window corresponding to a MultiPage with multiple tabs). I hit the obscure error when switching back to a previous MultiPage and creating a new tab.

0 投票
1 回答
567 浏览

excel - 使用 python 和 win32com 在 excel 中“显示公式”

如何使用 Python3 和 win32com.client 显示/显示 Excel 工作簿中的所有公式,就像我可以使用 Cntrl-`

我相信我必须使用Windows DisplayFormulas 属性,但我不知道如何访问 ActiveWindow 以在 Python 中执行此操作。

这是我打开电子表格和第一个工作簿并保存它的代码:

从键盘我只需输入 Cntrl-`,我想在处理大约 30 个 Excel 电子表格时自动执行此操作。

0 投票
1 回答
507 浏览

uipath - UI 路径中的 Excel 自动化是否支持 libre Office csv 文件

我正在尝试从 UiPath 中的 CSV 文件中读取内容。在尝试执行工作流程时,我收到以下错误。但是我已经在我的电脑上安装了 libre office。

我得到的错误

0 投票
0 回答
2618 浏览

excel - Excel 2019 - 来自 VBA 的 ADODB 连接停止工作

我在使用新的 Office 2019 时遇到了问题。Microsoft 帮助页面完全没有关于它的相关信息。看起来 Office 2010 中使用的相同连接字符串不再适用于 2019。在运行 Office 2010 的机器上,它运行良好,但在运行 Office 2019 的机器上,我收到运行时错误 3704 - 对象关闭时不允许操作。

连接字符串是

有任何想法吗?我怀疑 OLEDB 提供程序版本可能已更改,但在 Microsoft 文档中找不到这方面的任何内容。

0 投票
0 回答
68 浏览

excel - 从单元格和代码对齐中读取值

在过去的几天里,我一直在尝试从 Web 服务中获取 api 数据。我无法以更有效的方式做到这一点,而且我也没有得到关于我的请求的帮助。经过长时间的尝试,我设法通过录制宏从 Excel Power Query(2016 版)中获取了它。但是,我有两个问题需要解决,需要帮助。

  1. 我已将唯一 ID 保存在 D1 (1152843) 范围内,并将 api 密钥保存在 D2 范围内 (rrWedCKeclf1GqiY0pCBy05mdd)。我已经录制了一个宏,并希望在代码中提供单元格值,这样每当更改唯一 ID 或 api 键时,我都不必在代码中更改它。我试过range(d1).value了,但是语法太长了,有这么多引号,我很困惑。请帮我编辑那行。

  2. 录制的宏非常大,需要删除一些不必要的东西,而且我需要水平滚动以阅读整行的地方也很长。像我这样的初学者很难理解这种布局。请帮助我对齐代码,使其成为可读格式。

PS:请运行代码,查看结果并建议是否有更好的方法来获取相同的结果。感谢我能得到一些建议。

谢谢

0 投票
2 回答
184 浏览

python - 在 excel 文件中加载工作表并将其保存到另一个不同的 excel 文件

使用 python 3,我正在尝试将现有 excel 文件中的工作表附加到另一个 excel 文件中。

我在这个 excel 文件中有条件格式,所以我不能只使用 pandas。

此代码不起作用,因为该.create_sheet方法仅制作一个新的空白表,我想将我worksheet_new从另一个文件加载的我插入到final_wb

0 投票
1 回答
515 浏览

python-3.x - 使用win32.com复制excel工作表抛出Microsoft Excel复制粘贴错误

当我使用 win32.com 打开一个 excel 文件并将工作表粘贴到另一个 excel 文件中时,出现复制粘贴错误。

这是我得到的错误:

pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', 'Excel 无法将工作表插入到目标工作簿中,因为它包含的行和列比源工作簿少。要移动或复制数据到目标工作簿,您可以选择数据,然后使用复制和粘贴命令将其插入到另一个工作簿的工作表中。','xlmain11.chm',0,-2146827284),无)

0 投票
1 回答
454 浏览

excel - 在 Excel /automation 中强制加载插件

我有一个提供一组 UDF 的 Excel 自动化插件。即使通过互操作 API 打开 Excel,我也想让这些 UDF 正常工作。我知道当通过互操作 API 打开 Excel 时,Excel 以/automation使 Excel不加载 addins的参数启动。为了解决这个问题,我添加了以下Workbook_Open()事件:

此代码成功加载插件。我验证了在插件中使用一些日志记录。

我整理了一个名为 UDF 的测试工作簿=myDemoFunction()。通过打开该工作簿时,"C:\path\to\EXCEL.exe" /automation C:\path\to\workbook.xlsm我观察到以下行为。首先,带有 UDF 的单元格显示正确的结果(在本例中为“15.0”)。公式显示为=SomeApp.DemoAddin.myDemoFunction()好像,这通常仅在未加载插件时出现。当使用 VBA 进行重新计算CTRL+ALT+F9Application.CalculationFullRebuild在 VBA 中进行重新计算时,甚至使用 all 将所有填充的单元格标记为脏时,ThisWorkbook.Worksheets(1).UsedRange.Dirty都会导致带有 UDF 的单元格显示#NAME?。编辑其中一个 UDF 单元格(选择F2、、、Return)时,该工作表上的所有 UDF(不在其他也使用该 UDF 的工作表上)突然再次返回正确的结果,并且公式=myDemoFunction()再次变为。

所以我的问题是,如何触发 Excel 以编程方式识别插件?


我的代码库要大得多,但下面是自动化插件的精简版本,显示了这种行为(在 VB.net 中):

0 投票
1 回答
251 浏览

selenium-webdriver - 使用 C# 和 WinAppDriver 从 Excel 名称框中获取文本

我有一个 C# 自动化项目,它使用 WinAppDriver Release Candidate 1.2 与 Microsoft Excel 一起工作。

我有一个案例,我试图使用下面的代码获取工作表上已填充的行数。

代码成功地转到工作簿中的最后一个单元格,nameBox 以及 excel 驱动程序(即 this.excel)都是已知的。

我无法确定如何获取 Inspect 在 Value.Value 和 LegacyIAccessible.Value 中显示的当前单元格的内容。

有人知道这样做的方法吗?