Tag: com

如何永久删除或更新Excel中的VBA引用?

我的应用程序使用macros来生成一些图表,并使用对某些应用程序dll的引用。 我已经将整个应用程序从32位转换为64位,包括dll。 但其中的一个引用似乎仍然是指我以前使用的32位dll。 现在,即使当我尝试在引用中添加新的dll文件,它得到不同的命名,因此我无法从macros代码创build此dll的对象。 它给我一个错误说: 自动化错误:库未注册 相应的代码: On Error GoTo errNoDatabase Set server = CreateObject("Bemmsdb.Server") 'server.Connect "SQLOLEDB", "BACKUP", "", "", "Trusted_Connection=Yes" 'Set db = server.OpenDatabase("BEMMS") server.Connect "", "", "", "", "" Set db = server.OpenDatabase("") GoTo errSkip errNoDatabase: MsgBox "Unable to open database. Be sure to select a database in PowerScape before running the 'Query […]

如何在Excel中取消select单元格? 使用Matlab创build一个图表添加具有makred面积值的graphics

Excel 2016会在closures文件之前记住您最后标记(选定)的单元格,并在文件的下一个开始处标记相同的asrea。 不标记区域的唯一方法是由Matlab创build的未触摸的文件。 如何取消使用Matlab在Excel中的所有区域? 在我的程序(下面的代码)中,我使用Matlab访问现有的Excel文件。 该代码创build一个设置范围的新图表。 不幸的是,总是在图表中创build更多的图表,并在范围内select。 为了更加精确,在matlab文件中select的区域将被添加为新的graphics。 (当它是空的,一个空的图将被添加) 在这里你可以看到标记的区域: 然后运行后的代码将被添加为一个graphics,确切地说,标记的范围是: 具有代码和信息的原始程序,用于了解项目: 原定目标: 使用Matlab在已经存在的.xlsx文件中自动创build图表 简单的方法可以自由select范围,X和Y值(按表和列) 适用于.xlsx文件的所有大小。 (高达20,000行,50列和几张) 一般问题: 未触及的文件工作 在其他文件中总是添加额外的graphics 码: % Start Excel and open workbook Excel = actxserver('Excel.Application'); WB = Excel.Workbooks.Open('C:\…\test.xlsx'); %the workbook Excel.visible = 1; % Add chart Chart = invoke(WB.Charts,'Add'); % Get Sheet object SheetObj = Excel.Worksheets.get('Item', 'Tabelle1'); % 'Tabelle1' is […]

如何使用COM / ATL打开现有文件(无MFC)

我有一个现有的Windows C ++应用程序链接到ATL。 我需要打开一个现有的Excel文件并访问一些属性。 我需要做的事情之一是确定用户是否正在查看Excel文件。 我们可以假设用户安装了Excel,但是不知道哪个版本。 附加到现有Excel文件的C ++ / COM代码是什么? 如何确定文件当前是否由Excel实例打开? 假设我知道文件名。 我search了15分钟,但没有发现如何做到这一点没有MFC。

从2003年到2007年升级Office将通过COM互操作打破使用Excel的VB程序?

假定Office 2003的所有痕迹都将从计算机中删除。 更新: 我知道我仍然可以使用.xls文件。 我正在通过外部Excel的COM互操作来询问自动化Excel。 当我将一个对Excel的引用添加到VB项目时,它给了我不同版本的Excel的不同版本的DLL。 如果一个程序是参考Office 2003的dll编译的,是否需要重新编译Office 2007? 将代码需要更新使用新的DLL?

如果没有安装AddIns,则无法访问Excel的Application.ComAddIns属性

为Windows脚本主机剪下的代码显示了当前安装到Excel中的COM-AddIns的数量。 除了没有安装COM-AddIns之外,它工作正常。 我相信它应该输出一个“0”,但是会引发一个exception(代码800A03EC)。 有谁知道为什么? test.vbs Set objExcel = CreateObject("Excel.Application") WScript.Echo objExcel.ComAddIns.Count

Excel 2010的自动化比以前慢了5倍

我们有几个程序通过com自动化生成excel文档,一些用VB6编写,一些用python编写。 无论使用哪种编程语言,这些程序的运行速度都要比旧的Excel版本低5倍。 对python版本进行性能分析显示,额外的运行时间主要用于低级别的comfunction(内置方法绑定和调用),所以每个com调用都会放慢速度。 任何提示,我们如何加快速度,也许在Excel 2010(安全?)设置? 谢谢,托马斯

Python之间的Python和Excel

我想学习一些python,我希望python使用win32模块与excel交互。 我在这里find了一个关于wiki的基本例子。 它不会工作。 这是我得到的错误。 Traceback (most recent call last): File "C:/Users/Greg/Desktop/python programming/excel2.py", line 8, in <module> sheet.Range("A2").Value = str(Application.SIFilter(None, c.siObjectFilter)) NameError: name 'Application' is not defined 我的问题是这条线是做什么,为什么我得到一个错误? sheet.Range(“A2”)。Value = str(Application.SIFilter(None,c.siObjectFilter)) import win32com.client from win32com.client import constants as c excel = win32com.client.Dispatch("Excel.Application") book = excel.Workbooks.Add() sheet = book.Worksheets(1) sheet.Range("A1").Value = "Hello World!" sheet.Range("A2").Value = str(Application.SIFilter(None, c.siObjectFilter)) […]

创build一个能够使用VB.NET进行循环的COM类

Excel / VBA在我工作的组织中非常广泛地使用。为了使事情变得更容易,我正在使用.NET / VS2010中一些广泛使用的COM类来使用VBA。 不过,我似乎无法实现一个支持每个循环的COM对象。 这种行为如何实施? 要指定一个位: 在许多情况下,我将创build一些类(让它称为SomeClass)和一个附带的专用集合类(让我们称之为SomeClassCollection)。 在纯.NET中,这通常是没有必要的,因为我可以简单地为通用容器(例如List(Of SomeClass))创build必要的专门扩展。 在VBA / COM中,但是我需要为大多数自定义类创build一个单独的专用集合类。 对我来说,创buildSomeClassCollection COM兼容对象的最明显的方法是inheritance一些通用的.NET集合,例如List(Of SomeClass),然后创build添加特定的函数以及使基本function和属性COM可见(例如添加,删除,计数等) 因为我inheritance了一个.NET集合,每个集合都支持(在.NET中),我认为有可能以某种方式将这个能力传递给COM集合类(参考工作表,工作簿等)在Excel中支持每个)。

插入图像时如何保持Excel互操作性

我正在使用Excel COM互操作插入图像(特别是EPS)到电子表格中。 图像插入正常,但Excel忽略所有的可见/背景设置,窃取焦点显示一个对话框,如“导入图像”。 对话框只能保留一小段,但会使屏幕闪烁,更糟糕的是,当我一次插入多个图像时,它可以垄断系统几秒钟(包括从前台进程中窃取按键)。 我设置后台选项如下: Excel.Application xlApp = new Excel.Application(); xlApp.Visible = false; xlApp.ScreenUpdating = false; xlApp.DisplayAlerts = false; Excel.Worksheet worksheet; //…. worksheet.Pictures(Type.Missing).Insert(filename,Type.Missing); //steals focus 我怎样才能让Excel保持在这里的背景?

获取ExcelRange对象的坐标

在Excel的COM API中: 给定一个ExcelRange对象,我将如何确定其中包含哪些行和列? 我不想要范围的内容 ,只是范围的“坐标”,最好是整数。 我没有注意到ExcelRange同时具有Row和Column属性,但是这些仅指示范围的左上angular的行和列。 注意:我正在使用Delphi,但是这个问题可能与通过COM使用Excel的任何语言相关,所以使用Delphi进行回答是没有必要的。