Tag: 界面

Microsoft.Office.Interop.Excel.Range的Type.GetProperties返回空数组

我想使用下面的代码获取Microsoft.Office.Interop.Excel.Range接口的属性列表: using Excel = Microsoft.Office.Interop.Excel; PropertyInfo[] info = typeof(Excel.Range).GetProperties(); 但结果是一个空的数组:System.Reflection.PropertyInfo [0] 我错过了什么吗?

在Excel模板中使用OleFunction“find”查找标题variables,并从C ++中replace它们

我的问题是以下几点: 我打开一个Excel文件,我不知道我的客户端在模板文件中使用了哪些可能的头文件variables。 这些可以是:#DATE,#TIME,#NAME等。 所以我需要寻找这些variables,如果已经使用:replace它们。 vCell = findCell("DATE"); tempStr = DateToStr(Date()) ; // Date if (vCell.VType != VT_EMPTY ) vWorksheet.OlePropertyGet("Cells", vCell.OlePropertyGet("Address")).OlePropertySet("Value",StringToOleStr(tempStr)); findCell看起来像这样: Variant __fastcall TClassExcel::findCell(AnsiString Cell,String Range){ // Range is set to A1:Z100 as default in the header file vRange = vWorksheet.OlePropertyGet("Range",StringToOleStr(Range)); return vRange.OleFunction("Find", StringToOleStr("#"+Cell)); } 行if (vCell.VType != VT_EMPTY)不检测头内是否有这样的单元格。 我也试过vCell.Empty() ,它没有工作。 Vtype = 9,如果我看的价值。 所以,我正在寻找VBA的相应的“ […]

连接访问数据库以更新Excel电子表格

我们的部门每月都要维护几个Excel电子表格,其中包括许多电子表格,包括图表和图表。 每个月都会使用在不同的部门Access数据库中编写的报告为这些电子表格收集数据。 显然,维护/更新这些电子表格是一个很大的工作,是开放的人为错误。 我想创build的是一个Access数据库,通过更新这些电子表格本身使得这个过程变得更容易。 用户可以打开这个数据库,select一个电子表格,数据库将从其他部门的数据库中提取数据,为用户生成电子表格。 我遇到的问题是试图决定如何将此电子表格更新数据库与其他部门数据库连接起来。 虽然他们是我们部门的数据库,但我想以一种不会对他们造成新的工作的方式来进行交stream。 换句话说,我不想在这些数据库中创build或修改任何查询,报告,表格等。 我也有点犹豫,要连接任何表,因为我不想冒任何修改数据的风险。 我只是想让我的数据库向其他数据库询问他们的数据,然后使用这些数据来更新扩展。 请记住,所有这些数据库都在Access中,所有电子表格都在Excel中。

在VBA excel 2016中精确debugging一个被调用的Userform

我想知道是否有更聪明/更准确的方法来debuggingVBA中的用户表单初始化,这是从特定模块调用的。 因为当我在Userform_initialisatize中编写错误的一段代码时,我收到的错误声明了一个错误,但不是它发生的地方,突出显示的一段代码只是call Userform_intitialize而我仍然猜测Sub Userform_intitialize哪一段Sub Userform_intitialize包含错误。 因此,在每次less量代码工作之后,逐步构build带有testing运行的用户窗体,以创build稳定的Userform启动代码。 因为我知道自从上次成功运行以来发生了什么变化,但是如果我能立即知道错误发生在哪里,尤其是在试运行消耗大量时间的情况下,这将节省相当长的一段时间。 那么有什么方法来提取在哪个行中确切的错误发生在一个被称为Sub Userform_intitialize在VBA Excel 2016?

需要VBA重新编译

我有一个接口IReadable我声明: Public Function getFields() As Dictionary End Function Public Function getData() End Function 接口的实例属性设置为publicNotCreatable 我有一个Excel工作表,实现这个接口和这些方法(细节不重要)。 从模块mApp,我从子例程应用下面的代码: Dim oSheet As IReadable Set oSheet = ThisWorkbook.Sheets("tbl_deals") 'Compile error 当VBA通过菜单Debug – Compile VBAProject进行编译时,一切运行良好。 奇怪的是,代码只能运行一次。 如果我再次尝试运行代码, Type Mismatch出现“ Type Mismatch错误。 为了使代码再次运行,我需要将接口的状态切换为私有和后退,重新编译,代码再次运行一次(第二次,代码再次返回types不匹配错误)。 有关如何解决这个问题的任何想法,使代码运行稳定,无需每次重新编译? 编辑:这是一个奇怪的问题。 我认为这可能与已编译代码的污染有关,但是当在新的Excel工作簿中重新创build案例时,相同的问题仍然存在。

接口问题

我尝试在Excel VBA中实现一个实现两个接口的新类,但是由于接口的成员似乎没有在实现类中正确实现(它们不可调用),所以我遇到了编译问题。 接口如下: ICrawlable : Option Explicit Public Function GetCrawler() As ICrawler End Function IEquatable : Option Explicit Public Function Equals(CompareObject As Variant) As Boolean End Function 而ICrawlable也包含一个返回接口ICrawler的函数: Option Explicit Public Property Get CurrentItem() As Variant End Property Public Sub MoveNext() End Sub Public Function GetNext() As Variant End Function Public Function ItemsLeft() As Boolean […]

在C#中的Excel接口名称前的下划线字符的含义是什么?

在C#中使用Excel进行Excel编程时(使用Excel 14.0库),有几个名称相同的接口,但名称前面有一个下划线。 例如: _Workbook Workbook _Worksheet Worksheet _Application Application etc 这背后的原因是什么,下划线是什么意思? 我看到的大多数示例代码都是调用具有下划线的接口名称。

如何以编程方式接口Excel电子表格?

我有一个使用Excel作为数据库的组织的一些合同工作的要求,并希望通过一个真实的数据库来处理Excel数据。 (是的,我知道,没关系…) 客户有一张Excel表格,用于内部跟踪一些政府项目。 这个Excel工作表中的数据曾经通过CSV作为中间格式手动导入到SQL数据库中,并通过一个小型的Web应用程序提供。 电子表格或数据库中的更改是手动完成的(由不同的人员完成),必须手动同步。 新function的规格包括: 将Excelfile upload到Web应用程序 通过networking应用程序进行微小的更改(当然,这一点是毫不费力的) 偶尔将数据导出回Excel 电子表格(实际上是工作簿中的一些)实现了与其他机构进行交互所需的一些准则,因此在导入之前和之后必须在结构上保持相同。 它包含很多格式化,隐藏列和sortingbutton,以及不同工作表中单元格之间的大量数据链接。 我不想从头开始复制电子表格以提供导出,也不想在导入之前手动将正确的列提取到CSV中。 我宁愿寻找一种方法来加载Excel,“查询”某些字段,将它们写入数据库,然后从数据库加载数据,并只处理正确单元格的内容。 有没有一种编程方式与现有的电子表格接口,只读取或更改您需要的位?