精华内容
下载资源
问答
  • 这些新对象可以包含自定义属性和方法。实际上,窗体正是这样一种模块,在其上可安放控件。再次重复一遍,窗体正是这样一种模块。用模块创建对象,这些对象可被应用程序内的过程调用。标准模块只包含代码,而...

    5cd65acc0fd80fe1ebc3e9506a39a07f.png

    (接上讲)

    3.类模块 类模块是面向对象编程的基础,可以在类模块中编写代码,为并着手建设,为建立新对象做基础准备。这些新对象可以包含自定义的属性和方法。实际上,窗体正是这样一种类模块,在其上可安放控件。再次重复一遍,窗体正是这样一种类模块。

    用类模块创建对象,这些对象可被应用程序内的过程调用。标准模块只包含代码,而类模块包含代码又包含数据,可视为没有物理表示的控件。什么是没有物理表示呢?看过我之前章节的朋友马上就会想到:没有占用内存。对的,在类没有实例化之前是不占用内存的。

    94ae814fe88279d5934a12549d085fac.png

    四 模块的设计

    创建应用程序的最初部分是设计。首先需要为应用程序设计一个用户界面,这个界面的设计比较容易。但设计代码的结构就是一项较复杂的工作。构造应用程序的方法不同,可能会造成应用程序的性能以及代码的可维护性、可使用性不同。

    典型应用程序包括若干个模块:应用程序中每个窗体的窗体模块、共享代码的标准模块和类模块。每个模块包含若干含有代码的过程:Event(事件)过程,Sub过程,Function过程,Property过程。在很多情况中都存在着多个对象共享的重复过程。这种情况最好创建一个共享的过程,使大家都可以调用它。即使将来修改这些程序,则只在一个地方修改就可进行全部修改,这将大大提高程序的可读性和可维护性。可以把所有的共享操作放在标准的模块中。

    在设计类模块时要注意到接口封装,类为基于它创建的所有对象定义了属性(Properties),方法(Metho),事件(Events),这些属性、方法和事件也称为类的接口(Interface)。我们务必要做到接口只可升级,不可重新定义。其中的道理不再多说。关于什么是属性、方法和事件,相信大家学到这里已经有了一个深刻的理解和认识,如果还有什么模糊的地方也不要紧,在后续的教程中还会继续。关于类的知识,其实就是理解这几个关键知识点的过程。你确实理解了,我的讲解也就结束了。

    8d013c11cba1652ed9beb13b8bbb8dff.png

    五 类模块的定义及总结

    1 类是对象的定义。包含对象动作行为的相关信息,包括对象的名称、方法、属性和事件。但它不是对象本身,因为它不存在于内存中。当执行的程序代码实例化类时,就在内存中建立类的新执行个体,即对象。虽然只有一个类,但可在内存中建立多个相同类型的对象。

    2 可以把类看作理论上的对象,也就是说,它提供对象的灵魂,但本身在内存中没有肉身(对象)的存在。从这个灵魂可以建立数量不限的肉身(对象)。每一个从类建立的肉身对象都有相同的接口:属性、方法和事件。但各肉身(对象)都像独立实体一样运作;例如,一个对象的属性可以设定成与其它相同类型对象不同的值。

    3 Microsoft® Visual Basic® for Applications (VBA) 项目可以包含两种不同的类模块:一种是基本类模块,没有任何使用者接口与其相关联,另一种是与窗体或其它组件相关联的类模块。与窗体相关联的类模块其实与基本类模块完全一样,但只有相关联的窗体存在于内存中时,它们才存在于内存中。有相关联类模块之对象的范例是 Userforms、Microsoft® Access 窗体和报表、Microsoft® Word ThisDocument 对象、还有 Microsoft® Excel ThisWorkbook 和 SheetN 对象。

    4 建立类的肉身(对象)若要在程序代码中使用自定义的对象,请先建立该对象之类的新执行个体。当我们建立类的肉身时,即在内存中建立由类定义的对象。可以从任何类型的模块内部,建立类的新执行个体。建立 ClassName 类型的对象变量,然后使用 New 关键词,将类的新肉身指定给对象变量。

    今日内容回向:

    1 类模块的有效行为是什么?

    2 类模块有几类?

    66135e54ae774d35946146ce594f39e5.png

    在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

    学习VBA是个过程,这个过程是自己忍受孤独的过程。

    “水善利万物而不争”,你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。

    VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友:

    第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

    第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

    第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。

    第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

    第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。

    学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。我的上述教程是我多的经验的传递,大家可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深入的逐渐学习。

    ff052ba9c017208a7b688c1bd3a561f1.png

    最后将一阙词送给致力于VBA学习的朋友:

    浮云掠过,暗语无声,

    唯有清风,惊了梦中啼莺。

    望星,疏移北斗,

    奈将往事雁同行。

    阡陌人,昏灯明暗,忍顾长亭。

    多少VBA人,

    暗夜中,悄声寻梦,盼却天明。

    怎无凭!

    分享成果,随喜正能量

    展开全文
  • vba自定义类型返回函数vba自定义类型返回函数vba自定义类型返回函数
  • 大家好,在我之前的教程中分别讲了“VBA代码解决方案”“VBA...这套教程,我们开始讲解VBA的高级内容,模块应用。今日的内容是第一讲:什么是,什么是对象。一什么是是对象的“灵魂”。对象可以是任...

    307e2b6b825bfa671cf3f8393e51b723.png

    大家好,在我之前的教程中分别讲了“VBA代码解决方案”“VBA数据库方案”“VBA字典和数组方案”,通过对这三套教程的学习,我们对VBA的基本知识和基本的操作能有了一定的了解。这套教材是在前面教材基础上的讲解,希望大家在学习前面教材的基础上再学习本套教材。这套教程,我们开始讲解VBA的高级内容,类和类模块应用。今日的内容是第一讲:什么是类,什么是对象。

    一什么是类? 类是对象的“灵魂”。对象可以是任何事物,而类不会做任何事情,也不会占用内存,只有当类成为对象并使用Set语句和New关键字实例化为具体对象后,才能做事情并占用内存。

    把类实例化为具体对象的语法为:

    Dim C As Class

    Set C=New Class

    上述语句创建了一个名为C的对象,该对象的数据类型为定义的类Class。其特点是:

    1 使用New关键字,可以创建任意数量的类的新实例,并且能够将其存储在Collection对象中。

    2 使用Property Let/Set/Get语句,可以编写代码验证赋给类元素的值,并且可以编写当值改变时执行的相应代码。例如,能够编写代码确保某个值为要求的特性。

    3 类可以定义方法(使用Sub过程和Function过程),执行某项动作。

    注意点:与用户自定义类型的区别,下面给出了自定义数据类型的特点:

    1 在编译时必须声明所有的自定义类型变量。可以使用动态数组来处理多个自定义类型,但须使用Redim Preserve关键词。

    2 不能在运行时添加新的自定义类型变量。

    3 不能控制赋给自定义类型中元素的值。如只能定义为整数,但假如要求是大于5的值无法进行控制。

    4 自定义类型只是静态地存储数据。

    二 什么是类模块,类属性和方法:

    类模块由属性和方法组成,类本身类似于名词;属性可以当作形容词,用来描述类;方法则为动词,执行操作

    三 类和对象的比较

    让我们先来看一条非常简单的程序,让我们亲身体会一下类的庐山真面目:

    Sub mynzclass1_1()

    Sheets("1").Activate

    Range("A1").Value = "Hello,VBA world"

    End Sub

    上面代码的第二句:Range("A1").Value = "Hello,VBA world"

    我们把这这句代码全部放开,把隐藏的补充完整,看看是什么样子:

    Application.ActiveWorkbook.ActiveSheet.Range("A1")="Hello,VBA world"

    我们解释一下:

    1 Range("A1")为对象,指定单元格.

    2 Range("A1")前面,ActiveSheet也是对象,指定了哪个工作表。

    3 ActiveSheet前面又有一个对象ActiveWorkbook,指定了是哪个工作薄,

    4 ActiveWorkbook前面还有一个Application,指定的是哪个应用。

    那么其中的Value是什么?Value是一个Range("A1")这个对象的一个属性。那它是从哪来的呢?它是由Range类定义的。那么range是类还是对象呢?别急,我慢慢讲解,希望大家通过我的讲解能理解类和对象的关系。

    在上面的讲解中,我们提到实例化类为具体对象的过程,其实在mynzclass_1引用了一个Range类,并将之实例化后修改了它的属性。而在例子中,我们只不过是将这一切都以隐藏起来,直接对一个对象Range("A1")修改它的属性,但Range("A1")这个对象正是引用了Ragne这个类,才具有了Range类的属性"Value"。

    我们把上面的代码转换一下:

    Sub mynzclass1_2 ()

    Sheets("1").Activate

    Dim RA As Range '引用一个Range类

    Set RA = Range("A1") 'set将类实例化

    RA.Value = "Hello,world" 'RA是一个对象了

    Set RA = Nothing '将实例化销毁

    End Sub

    906259916aeb3e27e42ac816e0fe1375.png

    b27e70c76b1d661d603521aaa42c82a9.png

    abe8911c8dc7a4e158f5b04f296cec45.png

    这段代码是上面mynzclass1_1的原始代码,从中我们看出类本身并不直接为我们做什么,但是,它却又一直默默地隐藏在幕后规化着我们的动作。是的,这就是类。它是通过对象的方式展现在我们的面前,让我们无时无刻与之交流,却又常常在不经意间忽视了它的存在。

    现在再回到mynzclass1_1去看,就会很容易的发现,ActiveSheet实际引用了Worksheet类、ActiveWorkbook引用了Workbook类,而Application则引用了和它同名的Application类(这也正是我们会经常被混淆的一个概念,一个对象可以和被它所引用的类同名),原来我们在短短一个赋值的语句中,已经在与这么多的类打交道。

    那我们又要怎样来区分类和对象呢?其实它们经常成对地出现在我们面前,只是一个是看得见摸得着的,一个却深藏不露。我们可以这样去理解类与对象:类是一个概念或是一种定义,每个类拥有其自己的特征和行为方式,而对象就是某个类的实例。所以类是对象的“灵魂”,它无处不在,而你却看不到它。

    比如:汽车

    如果作为类:汽车的定义为有四个或者四个以上轮子,人能够坐在上面,操作它行走的工具(好难的定义)。这个时候“汽车类”是有自己的属性,如:汽车的前轮(是负责转向的)。汽车的前玻璃(是负责挡风的)等等。这里的“汽车”是一个概念抽象的概念。

    而我们通常指的汽车是作为对象:如丰田汽车就是汽车类中的一个大对象,这个大对象中还有小的对象,如“威驰FS”对象,属性:轮子是某某牌子的,前挡风玻璃是某某牌子的。这些就是很具体的属性值了。

    今日内容回向:

    1 什么是类?

    2 类和对象的联系是什么?

    e2d720231e257d6187435d4a99f7f879.png
    展开全文
  • 自定义功能区”,在右侧主选项卡下面的选项中,找到“开发工具”,在前面的小框打勾,确定,即可在菜单栏看到有开发工具。2. VBE界面(Visual Basic Editor)菜单栏 -> 开发工具 -> 查看代码快捷键:Alt + ....

    49fc7bb674a6f622ec53e318619d0adc.png

    学习资源:《全民一起VBA基础篇(Excel数据处理)》 杨洋老师

    一. VBA界面操作

    1. ​ 调出开发工具

    依次点击“文件”->“选项”->“自定义功能区”,在右侧主选项卡下面的选项中,找到“开发工具”,在前面的小框打勾,确定,即可在菜单栏看到有开发工具。

    472556b515a66bc6dc75dc11b9c8027c.gif

    2. VBE界面(Visual Basic Editor)

    菜单栏 -> 开发工具 -> 查看代码

    快捷键:Alt + F11

    常用标准代码,存放在模块。如没有看到模块,在工程资源管理器单击右键,插入模块即可。

    fc916348953cc0b80a560e2476001b43.png

    61f8c04e58664e0fb8bb1191efc8bab3.png

    5f0464b13c03675ae4c28f71f22da47c.png

    二. 程序设计

    1. 数据类型

    ①字符串 String

    ②数字类型:整型 Integer、长整型 Long、单精度浮点型 Single(小数点后最多6位)、双精度浮点型 Double(小数点后最多14位)。

    ③日期型 Date

    ④布尔型 Boolean:TrueFalse.

    ⑤变体型 Variant(不知道是什么类型,可定义为variant,但这种操作应当尽量避免)

    2. 变量

    用于保存在程序运行过程中需要临时保存的值或对象。

    定义变量:Dim 变量名 (As 数据类型)

    Dim i as Integer
    i=6

    1)第一个字符必须是字母。

    2)名字中可以包含字母、数字和下划线。

    3)名字中不能包含空格、句号、惊叹号,也不能包含字符@、&、$和#。

    4)名字中最多包含255个字符。

    3. 常量

    用于保存不会发生变化的数据。

    定义常量:Const 常量名 As 数据类型 = 常量的值

    Const pi As Single = 3.14

    4.字符串

    几个常用的字符串函数:

    Len(): 求长度

    Trim(): 去掉两端空格

    Replace(): 替代子串

    Left(): 从左边取若干字符

    Right(): 从右边取若干字符

    Mid(): 从中间取若干字符

    Instr(): 查找子串

    LCase(), UCase(): 将字母变成小/大写

    进行操作前可叠加使用Trim()和LCase()清除数据中的空格和因大小写不一致出现的问题。

    5.过程流程控制

    ①循环

    For … next

    Do While … Loop

    For Each in … Next

    ②判断

    If ... Then ... (Else if ... Else ...) End if

    Not, And, Or(优先级从左往右)

    三. 对象结构

    类,对象,属性,方法

    1.定义类

    2.定义属性

    3.定义方法

    4.创建并使用对象

    4d6966e923f8af422fd16f3e55e586df.png
    课程介绍了这四个对象,但实际还有很多。

    四. 编程习惯与辅助工具

    ①强制声明Option Explicit(写在sub上面,避免误用未定义的变量)

    ②代码缩进Tab键(注意递进关系,使代码更清晰)

    ③程序注释REM或单引号“‘ ”

    ④调试器(设置断点(在句子左侧点击)、单步执行F8、添加监视)

    ⑤录制宏(不会就录,注意录制时不要做多余的步骤)

    五. 过程:

    1.Sub

    ...

    End Sub

    2.Function

    ...

    End Function

    个人把过程语句理解为给电脑一个指令,让它知道是从这里开始,到那里结束。这里老师没有太多细讲。

    六.练习:

    汇总员工业季度报告(VBA基础篇第十八回 For Each轻取工作表,串函数巧解文字栏)

    8467f76d0e0835834ef08e3eea289150.png
    Option Explicit
    
    Sub 季度汇总()
        
        Dim i, j, k, name
        Dim w As Worksheet, r As Worksheet
        
        Set r = Worksheets("季度汇总")
    
        '循环扫描汇总表中的每一行,记住每次要查找的姓名
        For i = 3 To 10
            name = r.Cells(i, 2)
                
            '循环扫描所有工作表,并用 w 指向该工作表
            For Each w In Worksheets
                '如果该工作表名字以“月”结尾,则认为是月报表
                If Right(w.name, 1) = "月" Then
                    '循环扫描该月报表的每一行,判断其姓名列是否等于name
                    k = 3
                    Do While w.Cells(k, 2) <> ""
                        '如果第k行姓名等于name,则将该行累加到汇总表第i行
                        
                        If LCase(Trim(w.Cells(k, 2))) = LCase(Trim(name)) Then
                        
                            For j = 3 To 6
                            r.Cells(i, j) = r.Cells(i, j) + w.Cells(k, j)
                            Next j
                            
                        End If
                        k = k + 1
                    Loop
                End If
            Next w
        Next i
    End Sub

    六. 总结

    写了好久都没写对,一按运行就程序未响应,需要重新启动Excel,然后打开我写的程序就不见了……

    8a5a287eded79c5f0a01586d7659dabc.png

    对VBA有了大致的了解,明天开始学习蓝色幻想的课程。加油!

    展开全文
  • 大家好,在上两讲中讲了模块的调试行为,对于我们写代码人员来讲,要充分地理解每个知识点的概念,才能在实际工作中灵活运用,在我的第一套教程《VBA代码解决方案》中,我推出的是一种积木编程的思想,要求大家...

    大家好,在上两讲中讲了类模块的调试行为,对于我们写代码人员来讲,要充分地理解每个知识点的概念,才能在实际工作中灵活运用,在我的第一套教程《VBA代码解决方案》中,我推出的是一种积木编程的思想,要求大家掌握每块积木的价值,这样才能在应用中量材使用,在之前的教程中,我没有把那些枯燥的概念作为讲解的重点,因为对于VBA而言,重在实用,对于一门实用的技能,你只要应用就行了。就好比我们每天都在开车,我们只要能把车从一个地方开到另外的地方就可以了,不必要知道汽车的内部有哪些传动系统、动力系统、电气系统。但是,如果我们作为一位老司机,有着几十年驾龄的老司机,如果只是能把车从一个地方开到另一个地方是远远不够的,掌握一下基本的汽车理论是理所当然的,这也是自身能力提高的一个标志吧。

    我们的VBA也是如此,我说过,对于EXCEL而言,学到一定程度后,使用VBA是必然的。那么对于VBA而言,如果使用到了一定程度后,对于理论的研究也是必然的。到了这个阶段,就要把实用操作上升到理论层面了。这套《VBA类的解读及应用》就是这样一部侧重于理论的教程。通过这套教程的学习,读者要熟悉对象、属性、方法、事件、过程等一系列枯燥概念的含义,并在实践中加以利用。

    我在之前的讲解中讲过事件的定义,就是对象的响应。也讲过了如何创建VBA事件,就是要定义一个类模块,在类模块中用Event来定义一个事件,然后编写代码,通过RaiseEvent来触发事件。在EXCEL中我们很多时候事件是应用在自定义的窗体中的,那么工作表作为对象,如何应用自定义事件呢?这讲和之后的几讲我们来深入地讲解这个问题,讲解过程中会通过一个实际的例子来说明。

    一 自定义类,并在类中定义我们的事件。由于我们将要在工作表对象中应用这个类,为了更好的描述,我们把类定义为mysheet(这种命名是完全合乎我个人习惯的啊)。看下面的代码:

    Public Event mySelectRan()

    Public Event mySelectRanA(X As Integer, Y As Integer)

    Private myHS As Integer '宿主myHS

    Private myLS As Integer '宿主myHS

    Public WithEvents mySht As Worksheet

    Private Sub mySht_Change(ByVal Target As Range)

    RaiseEvent mySelectRanA(myHS, myLS)

    End Sub

    Private Sub mySht_SelectionChange(ByVal Target As Range)

    myHS = Target.Row

    myLS = Target.Column

    If Mid(Target.Address, 2, 1) = "A" Then

    RaiseEvent mySelectRan

    End If

    End Sub

    Public Property Get HS() As Integer '属性: 读

    HS = myHS

    End Property

    Public Property Get LS() As Integer '属性: 读

    LS = myLS

    End Property

    代码的截图(大家要注意这个截图中我勾画的重点):

    9240b292f36e04d10d72556ad366ef61.png

    代码讲解:

    1 这个类模块的功能是十分强大的,实现了属性规则的确定,自定义两个事件,声明了响应自定义事件的对象,给出了这个对象的两个方法等等。

    2 Public Event mySelectRan(),这句代码定义了一个mySelectRan事件,关键字是Event,事件的名称是mySelectRan,这个事件没有参数的传递。

    3 Public Event mySelectRanA(X As Integer, Y As Integer),这句代码定义了一个mySelectRanA事件,这个事件名称是mySelectRanA,大家注意命名,根据我的命名习惯这个事件是上一个事件mySelectRan的衍生品,区别是这个事件有传递的参数X,Y。

    4 Private myHS As Integer '宿主myHS

    Private myLS As Integer '宿主myHS

    上述两条语句是属性值宿主的变量声明,大家要注意这里的声明要是Private,即私有变量。这两个变量myHS和myLS将分别作为选择单元格后行列数的值传递。

    5 Public WithEvents mySht As Worksheet,这条语句是对应用自定义事件对象的声明,关键字是WithEvents,对象的名称是mySht,对象的类型是Worksheet。也就是说,我们声明了一个变量,这个变量是对象变量,变量的类型是Worksheet,在过程中这个对象将是作为类事件,即上面讲过的mySelectRan和mySelectRanA事件的响应对象。

    今日内容回向:

    1 自定义事件的关键字是什么?

    2 如何释放这个自定义事件?

    3 自定义事件在哪里声明?

    备注:本讲代码参考程序文件:VBA-CLASS(下51-56).xlsm

    7bde0030b20309bb3d24ad59fa509b7d.png

    在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

    学习VBA是个过程,这个过程是自己忍受孤独的过程。

    "水善利万物而不争",你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。

    VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友:

    第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

    第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

    第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。

    第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

    第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。

    学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。我的上述教程是我多的经验的传递,大家可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深入的逐渐学习。

    23d58fbae4353683adce6e69464f7ba8.png

    最后将一阙词送给致力于VBA学习的朋友:

    浮云掠过,暗语无声,

    唯有清风,惊了梦中啼莺。

    望星,疏移北斗,

    奈将往事雁同行。

    阡陌人,昏灯明暗,忍顾长亭。

    多少VBA人,

    暗夜中,悄声寻梦,盼却天明。

    怎无凭!

    分享成果,随喜正能量

    展开全文
  • 细品RibbonX(39):技巧—使用VBA... 除了使用创建自定义属性外,也可以为许多对象(例如工作簿、工作表,等)创建自定义属性。此外,在给对象定义自定义属性之后,属性作为对象的成员被公开,例如:ThisWorkboo...
  • 你已选中了添加链接的内容蓝字关注,加微信NZ9668获资料信息VBA解决方案 系列丛书作者头条百家平台 VBA资深创作者_______________________________大家好,我们这讲讲解实例化的存储及访问。这讲的内容也是为让...
  • 大家好,我们今天继续讲解的相关知识。在上一讲中我们讲了使用WithEvents定义响应事件的对象,那么有了对象自然要跟进到事件了,这讲就给大家讲解两个新...这套VBA的解读及应用中,侧重点是理论的学习,要求大...
  • VBA 自定义函数

    2013-06-12 21:50:46
    二、自定义函数自定义函数是用户自己编写的函数;一个自定义函数就是一个function过程;编写了一个function过程就相当于编写了一个自定义函数。三、为什么要创建自定义函数1.简化工作,解决需要较多辅助列或使用较长...
  • VBA自定义菜单和菜单栏

    千次阅读 2013-08-28 20:36:29
    在EXCEL中,我们的操作都是通过“工具栏、菜单栏、快捷菜”单实现。EXCEL通过菜单给我们提供基本操作功能之外,也为我们提供了扩展自定义功能的接口,即自定义自己的工具栏、菜单栏。...与大家分享关于VBA实现菜单栏管
  • VBA关于区域组合的自定义函数 ExcelVBA引用单元格区域在使用ExcelVBA进行编程时,我们通常需要频繁地引用单元格区域,然后再使用相应的属性和方法对区域进行操作。所谓单元格区域,指的是单个的单元格...
  • vba自定义菜单和菜单栏Annoyedthat Windows 10 gives you only one setting to change the color of thetaskbar, Start menu, and Action Center all at once? There’s no way to change each color individually, ...
  • 根据vba编写的excel宏文件,可以批量生成点、线、面、圆,点击图层内对象可显示对象说明,且说明可自定义,可设置生成对象属性,如图钉样式、线宽、颜色、透明度等,生成的图层最多可设置三层文件夹。
  • 想了解一下VBA自定义类和事件,以及注册事件处理程序的方法。 折腾了大半天,觉得这样的方式实在称不上“注册”,所以加一个“伪”字。纯粹是瞎试,原理也还没有摸透。先留着,有时间再接着摸。 做以下尝试: 1...
  • 提取CAD中多段线及块属性VBA源码

    热门讨论 2012-09-22 12:09:11
    提取CAD中多段线及块属性VBA源码,可直接引用,用于提取文本等,很实用的
  • VBA 模块理解和使用总结

    千次阅读 2021-04-19 18:52:59
    VBA 模块理解和使用总结 一、的概念 记得有人总结,VBA是基于面向对象(OOP)的编程语言,而java是完全面向对象的编程语言,为了更好地理解面向对象,去学习了一下java,现在回过来看VBA的面向对象特性就比较好...
  • 现在希望能够将该表数据以C列(科室)按照“外妇科l手术室l内儿科l西医科l中医科l耳鼻喉科I放射科l检验科l超室|口腔科l针灸科I西药房l中药房l收费室J疾控科l合管办|后勤科”的依次顺序进行排序,如何利用VBA实 ...
  • (3)button 标签定义了一个按键,image属性值为按键图标的ID(ID与图标路径在customU/_rels/CustomUI.xml.rels文件内已经绑定),onAction属性的值为点击按键后需要执行的宏的名称; (4)“ ”表示换行...
  • 读取系统文档属性Sub read()On Error Resume Nextrw = 1Worksheets(1).ActivateFor Each p In ActiveWorkbook.BuiltinDocumentProperties Cells(rw, 1).Value = p.Name Cells(rw, 2) = p.Value rw = rw + 1Next...
  • Caller属性 例 在使用公式进行按条件查找时,经常需要返回满足条件的所有记录。然而Excel的大部分查找函数只能返回满足条件的第一个记录。可以自定义一个函数进行条件查找,并返回满足条件的所有记录。例如编写...
  • 你已选中了添加链接的内容蓝字关注,加微信NZ9668获资料信息VBA解决方案 系列丛书作者头条百家平台 VBA...代码存储在模块中,在VBA中提供了三种类型的模块:窗体模块、标准模块和模块。一 各个模块的分工我们在...
  • vba自定义功能函数

    千次阅读 2013-06-16 10:36:48
    财务金额小写转大写: 1 先在vbe里新建模块,并写入代码: Function xxzdx(M) y = Int(Round(100 * Abs(M)) / 100) j = Round(100 * Abs(M) + 0.00001) - y * 100 f = Round((j / 10 - Int(j / 10)) * 10) ...
  • 大家好,这讲开始我将给大家讲解这套《VBA的解读及应用》的最后一个专题:接口的实现及应用。在之前的文章中已经给大家了解了一些接口的相关知识,在这个专题中将会给大家详细地讲解这块的内容,作为本套教程...
  • VBA--模块学习

    万次阅读 多人点赞 2019-05-30 13:52:18
    不废话,从基础开始学VBA模块。 主要分下面几个部分: 1.什么是 2.为什么要学习 3.的预备知识 4.创建类属性 5.创建方法 6.创建事件 7.一个完整的实例 8.未完的结尾 什么是 在我们身边...
  • 如下图所示,当鼠标右键单击excel工作表中的单元格时,将会弹出单元格右键快捷...vba 中提供了给菜单增加自定义命令的功能。可以用CommandBar对象获取指定的菜单命令栏,然后用CommandBar对象的Controls属性获取所...
  • 选择该对象,将自动建立事件代码框架,在右边的“事件”列表中有与对象相关的事件可供选择:工作簿对象也中如此:在“插入”菜单可以插入三模块:用户窗体、模块、模块。用户窗体是与用户交互的图形界面,窗体.....
  • 在使用 Word 制作合同等格式文本的过程中,经常会需要处理一些「待定内容」,例如签署方的全称、签署日期等。...提到 Word 文档属性,我们一般会想到创建日期、修改日期这些文件系统属性,或者作者、标题

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,048
精华内容 1,219
关键字:

vba自定义类的属性