Tag: oop

该debugging代码是否应该用在VBA对象循环中?

寻找包括下面的代码作为一个循环的实例,通过包括多个单元格值的设置范围对象。 这个链接提供了一个很好的Debug.Print的概述,但是.Address的工作对我来说仍然是个谜。 Debug.Print .Address http://www.cpearson.com/excel/DebuggingVBA.aspx

在Excel中parsingExcel电子表格到模型中

我有一个Excel电子表格,一次包含单个客户端的服务交付信息。 例如,马克斯公司将在其3个公司办公室提供健康评估。 办公室可以在多天内交付健康评估(服务types),并由不同的医生进行。 我创build了我认为是JavaBeans的东西,最终代表所有这些信息以及实体(如客户端,交付,服务和交付中的单个会话)之间的关系。 我现在的问题是,从Excel电子表格中读取和parsing数据的最好方法是什么? 我想我可以创build一个静态的util类(像一个工厂类),在一个方法中读取Excel电子表格(使用Apache POI HSSF),然后使用各种其他方法来parsing电子表格中的数据,然后返回一个包含所有其他对象的客户端对象等等。 在这个过程中的某一时刻,我还需要一些来自SQL Server数据库的数据,我认为我会根据需要使用JDBC。 我用这种方法走向正确的方向吗? 或者会推荐这样做另一种方式?

Excel VBA:来自太多未被破坏的对象的溢出错误?

在大数据集上执行优化任务时,我会不时收到溢出运行时错误6(通常在1小时或2小时后)。 当我从macros停止的位置重新启动我的macros时,错误消失,即从发生错误的地方再次启动macros。 溢出错误是否与创build太多使用后不能正确销毁的对象有关? 下面是我的容器类的一个(简化版本),它被销毁(通过Set … = Nothing)和重build(通过Set … = New)成千上万次。 'CG_data_point custom collection class Public data_points As Collection Private Sub Class_Initialize() Set data_points = New Collection End Sub Public Sub AddDataPoint(mydate as date, price as double) Dim new_data_point As CG_data_point Set new_data_point = New CG_data_point new_data_point.EnterData mydate, price data_points.Add new_data_point Set new_data_point = Nothing 'I […]

有没有办法将MATLAB对象写入内存?

现在,我正在浏览一个大型的excel数据库(超过16,000)条目,并将条目转换为我创build的类的对象。 因为通过数据库并创build所有对象需要很长时间,所以我想知道是否有办法将这些对象保存到内存中,这样每次运行程序时都不需要将数据库重新转换为对象,我可以只需运行一次转换脚本,然后加载对象。 谢谢!

VBA:在类B的属性中实例化类A.

我是excel VBA OOP的初学者,需要帮助将带有属性的类实例放入另一个类的属性中。 我有一个对我有意义的方法,但是不起作用。 我不确定它只是一个简单的语法/结构错误,或者如果我完全忽略了这个标记。 这是一个说明我的问题的简单例子: 类A有一个string值的属性。 B类拥有一个拥有A类实例的属性,并且此属性接受一个string参数并将其传递给A类属性。 A类 Private strProp As String Public Property Let Prop(sProp As String) strProp = sProp End Property B类 Private clsA As New ClassA '''DIFFERENT ATTEMPTS OF THE SAME METHOD: Public Property Let ClassA(strNameA As String) clsA.Prop = strNameA End Property 'Public Property Set ClassA(strNameA As String) ' clsA.Prop […]

在VBA 2003中列出一个类的属性

我已经全面search,看看这个问题是否有一个简单的答案,但似乎并没有… 我正在使用Excel VBA 2003(是的,我知道这是过时的,但我不能改变这一点),我想要做的就是列出给定的自定义类中的所有可读属性的名称和值。 我想要做这样的事情: 类定义(用于类的标题为cFooBar) Option Explicit Private pFoo As String Private pBar As String Public Property Get Foo() As String Foo=pFoo End Property Public Property Get Bar() As String Bar=pBar End Property 调用代码 Dim myFooBar as cFooBar, P as Property myFooBar=new cFooBar For Each P in myFooBar.Properties Debug.Print P.Name, P.Value Next 当然,这不起作用,因为似乎没有自定义类的“属性”集合成员(或者至less不是你可以得到的),也没有“属性”types。 有人知道这个方法吗? […]

将对象添加到VBA中的集合 – > OOP-Basics?

我是面向对象的新手,所以可能有一个明显的解释,为什么这是行不通的。 我正在尝试添加对象到VBA中的集合。 我的课程模块是这样的: Option Explicit 'the person class Public FirstName As String Public LastName As String Property Get FullName() As String 'return the person's full name FullName = FirstName & " " & LastName End Property 我的代码是这样的: Sub myProg() 'create a new collection! Dim Persons As New Collection Dim p1 As New clsPerson 'give them […]

Excel VBA – 用户定义类实例的公共范围

我最近开始用Excel VBA编程。 来自Java环境,我正在尝试将OOP原则应用于VBA,但是我很难做到这一点。 我创build了一个configuration类模块来封装所有的初始configuration,并提供简单和受控的访问。 从Workbook_Open()函数我初始化configuration对象。 我想要做的是将这个实例保存在公共范围内,以允许从完整的程序访问相同的实例。 (在Java中的静态variables或单例) Option Explicit Dim conf As Config Private Sub Workbook_Open() Set conf = New Config End Sub 这样做有效,但范围不公开。 当我把公共关键字,而不是Dim,我得到以下错误: 编译错误: 私有对象模块不能在公共对象模块中用作参数或公共过程的返回types,公共数据成员或公共用户定义types的字段 所以我的问题是,没有任何方法来保持对象实例的公开? 如果不是,那么以面向对象的方式组织项目的最佳方式是什么,而不是将所有内容都放在工作簿模块中? 谢谢你的时间。

UML在今天的生活中有什么用处?

我没有编程工作。 但是我不时用代码(使用函数式编程和面向对象编程),为了做许多重复的任务,我在我使用的软件中执行,很简单:从模拟中提取数据并将其转储到excel文件中,读取数据从一个Excel文件,并使用该数据来操纵我的模拟等。 我可以在不使用UML的情况下pipe理得很好。 但是我想知道的是:对于一个没有代码谋生的人来说,使用代码来简化生活,节省时间,使用UML有多重要(我明白我不能用它来进行函数式编程)? 什么是实际的好处? 如何使用UML编写更好的代码? 我知道这不是一种编程语言的替代品,因为我不能用它作为编程语言。 但是我也希望能够理解的是,在我开始编写OOP代码之前,我怎样才能使用它?

VBE看到Ambigious Name

嗨所以我只是了解VB的采取OOP。 在testingLet , Get方法如何工作时,我创build了这个虚拟类Class1 ,显然它不能被编译,因为“Ambigious name detected:〜”出现此错误VBE突出显示了类的第2行(一个声明test_property为Integer)。 我不明白这是什么意思? 仅供参考通过试图声明与Dim & Public没有任何这些方法改变任何东西。 见Class1波纹pipe: Option Explicit Private testing_property As Integer Public Property Let testing_property(new_value As Integer) MsgBox "Let Box" Let testing = new_value End Property Public Property Get testing_property(new_value As Integer) As Integer MsgBox "Get Box" End Property 我打电话给它使用下面的testing小组: Sub Test() Dim test_Class As Class1 Set test_Class […]