精华内容
下载资源
问答
  • 获取工作簿中所有表的名称和地址

    ####一、目的
    一个工作簿中有很多的表,想提取所有表的名称和地址,方便后期公式的使用
    ####二、方法
    1、 使用VBA代码

    Sub 提取所有工作表的名称()
    	For Each x In Sheets
    	    k = k + 1  'k可以不用定义,因为VBA中可以默认变量类型为variant
    	    'Cells(k, 1) = x.Name   '表的名称纵向排列
    	    Cells(1, k) = x.Name   '表的名称横向排列
    	    If k = ThisWorkbook.Sheets.Count - 1 Then Exit For 
    	     '可以控制显示的表的名称的数量
    	Next
    End Sub
    
    

    2、excel公式
    a. 在A1单元格输入=CELL("filename")获得路径和表名;
    b1.在A2单元格输入=MID(A1,FIND("]",A1)+1,99)摘出表名
      b2.或者用“数据”—“分列”–“]”分出表名

    3、定义名称(如定义名称为“你好”)
    a. 定义名称“你好”=index(get.workbook(1),row(A1)&T(NOW())
    b. 在A1单元格输入=IFERROR(HYPERLINK(你好&"!A1",MID(你好,FIND("]",你好)+1,99)),"")
    有表的名称,并且有链接;

    4、定义名称2(如定义名称为“不好”)
    a. 定义名称“不好=get.workbook(1)
    b1. 在A1单元格输入=transpose(不好)必须选中多个单元格然后按ctrl+shift+enter三键进行数组运算;
    b2. 在A1单元格输入=INDEX(不好,ROW(A1)&T(NOW()))
    c. 用“数据”—“分列”–“]”分出表名

    Application.ActiveWorkbook.Path 只返回路径
    Application.ActiveWorkbook.FullName 返回路径及工作簿文件名
    Application.ActiveWorkbook.Name 返回工作簿文件名

    展开全文
  • 大家好,我们今日讲解“VBA信息获取与处理”教程中第二十个专题“定制工作表函数获取工作表的信息”的第3节“获取指定工作表名称及工作表可见性的信息函数”,这个专题是非常实用的知识点,希望大家能掌握利用。...

    02b07f848ba4c60a3b46509a62ec1975.png

    大家好,我们今日讲解“VBA信息获取与处理”教程中第二十个专题“定制工作表函数获取工作表的信息”的第3节“获取指定工作表名称及工作表可见性的信息函数”,这个专题是非常实用的知识点,希望大家能掌握利用。教程会提供配套的程序文件。

    第三节 获取指定工作表名称及工作表可见性的信息函数

    大家好,我们这讲的内容将介绍给大家利用定制函数的方法获取指定工作表的名称,包括指定的索引,上个工作表,下个工作表,以及工作表可见性的函数。

    1 SheetNameOfIndex函数,返回指定索引的工作表名称

    这个函数将返回索引为index的工作表名称,如果索引越界返回#REF!先看代码介绍:

    Public Function SheetNameOfIndex(Index As Long, Optional R As Range) As Variant

    Dim WB As Workbook

    If R Is Nothing Then

    Set WB = Application.Caller.Worksheet.Parent

    Else

    Set WB = R.Worksheet.Parent

    End If

    If Index <= 0 Or Index >WB.Worksheets.Count Then

    SheetNameOfIndex = CVErr(xlErrRef)

    Exit Function

    End If

    Err.Clear

    On Error Resume Next

    SheetNameOfIndex = WB.Worksheets(Index).Name

    If Err.Number<> 0 Then

    SheetNameOfIndex = CVErr(xlErrRef)

    End If

    End Function

    代码截图:

    b366f38d42eaf945efc9f74aea86f4e5.png

    代码解读:

    1)这个函数返回指定索引号的工作表名称,当R存在时返回R所在工作薄中指定索引的工作表名称,当R不存在时返回引用函数的工作薄的指定索引的工作表名称。代码比较简单不再多讲。

    2 NextSheetName函数,返回下一个工作表的名称

    这个函数将返回下一个工作表的名称,我们看一下实际代码:

    Public Function NextSheetName(Optional R As Range) As Variant

    Dim S As String

    Dim WS As Worksheet

    If R Is Nothing Then

    Set WS = Application.Caller.Worksheet

    Else

    Set WS = R.Worksheet

    End If

    On Error Resume Next

    S = WS.Next.Name

    If Err.Number = 0 Then

    NextSheetName = S

    Else

    NextSheetName = CVErr(xlErrRef)

    End If

    End Function

    代码截图:

    084a24502a74298e0940c9d5cbdba99d.png

    代码讲解:

    1)函数将返回下一个工作表的名称:如果提供R,则返回包含R的工作表之后的工作表名称。如果省略R,则返回调用函数的工作表之后的工作表名称。如果没有下一个工作表,则结果为#REF。代码比较简单不再多讲。

    3 PreviousSheetName函数,返回工作薄的名称

    这个函数将返回上一个工作表的名称,代码:

    Public Function PreviousSheetName(Optional R As Range) As Variant

    Dim S As String

    Dim WS As Worksheet

    If R Is Nothing Then

    Set WS = Application.Caller.Worksheet

    Else

    Set WS = R.Worksheet

    End If

    On Error Resume Next

    Err.Clear

    S = WS.Previous.Name

    If Err.Number = 0 Then

    PreviousSheetName = S

    Else

    PreviousSheetName = CVErr(xlErrRef)

    End If

    End Function

    代码截图:

    3a556a05819612e1831af03ba29df4e3.png

    代码讲解:

    1)函数将返回上一个工作表的名称。如果提供R,则返回包含R的工作表之前的工作表名称。如果省略R,则返回调用它的工作表之前的工作表。如果没有上一页,则结果为#REF。

    4 SheetVisible函数,返回指定的工作表是否可见

    函数返回一个布尔值指示指定的工作表是否是可见的,下面是代码:

    Public Function SheetVisible(SheetName As String, Optional R As Range) As Boolean

    Dim WB As Workbook

    Dim WS As Worksheet

    If R Is Nothing Then

    Set WB = Application.Caller.Worksheet.Parent

    Else

    Set WB = R.Worksheet.Parent

    End If

    On Error Resume Next

    Err.Clear

    Set WS = WB.Worksheets(SheetName)

    If Err.Number<> 0 Then

    SheetVisible = False

    Else

    If WS.Visible = xlSheetVisible Then

    SheetVisible = True

    Else

    SheetVisible = False

    End If

    End If

    End Function

    代码截图:

    89a56a7c7c65b9c5e0c72c04701b97a1.png

    代码解读:

    1) 函数返回True或False,指示工作表SheetName是否可见。如果包含R,则搜索该范围的工作簿以查找SheetName。否则,将搜索调用工作簿。

    5 SheetNameOfIndex、NextSheetName、PreviousSheetName、SheetVisible函数应用

    有了上述的各个函数,我们在工作表中就可以利用了,录入下面的公式:

    2f08c4738567f0d757802ff9f38e543c.png

    看看函数的返回结果:

    38cea804da18d2cb08dd905b6034a856.png

    这样在工作表中就可以应用上述函数了。

    本节知识点回向:

    1. SheetNameOfIndex、NextSheetName、PreviousSheetName、SheetVisible函数的意义是什么?

    ② SheetNameOfIndex、NextSheetName、PreviousSheetName、SheetVisible函数是如何应用的?

    本讲代码参考文件:020工作表.xlsm

    c892cdca1da63bcd9c726e2638a1ccfd.png

    积木编程的思路内涵:

    在我的系列书籍中一直在强调“搭积木”的编程思路,这也是学习利用VBA的主要方法,特别是职场人员,更是要采用这种方案。其主要的内涵:

    1 代码不要自己全部的录入。你要做的是把积木放在合适的位置然后去修正代码,一定要拷贝,从你的积木库中去拷贝,然后修正代码,把时间利用到高效的思考上。

    2 建立自己的“积木库”。平时在学习过程中,把自己认为有用的代码放在一起,多积累,在用到的时候,可以随时拿来。你的积木库资料越多,你做程序的思路就会越广。

    c892cdca1da63bcd9c726e2638a1ccfd.png

    VBA的应用界定及学习教程:

    VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!

    我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程,目前教程均通过32位和64位两种OFFICE系统测试。

    第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。

    第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。

    第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

    第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,听元音更易接受。这套教程还会额外提供通过32位和64位两种OFFICE系统测试的程序文件。

    第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

    第六套教程:《VBA信息获取与处理》是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。

    上述教程的学习顺序:1→3→2→6→5或者4→3→2→6→5。提供的程序文件更是一座巨大的代码库,供读者使用,如需要可以WeChat: NZ9668

    41a9bccb2bd19df34661321643216c4b.png

    学习VBA是个过程,也需要经历一种枯燥的感觉

    “众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山”。学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。利人就是利己。我的教程助力给正在努力的朋友。

    “水善利万物而不争”,绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。学习时微而无声,利用时则巨则汹涌。“路漫漫其修远兮,吾将上下而求索”

    每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将两阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着:

    其一

    浮云掠过,暗语无声,

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

    望星,疏移北斗,

    奈将往事雁同行。

    阡陌人,昏灯明暗,

    忍顾长亭。

    多少VBA人,

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

    怎无凭!

    其二

    望空

    不见云头

    几缕秋风,几片残阳

    几处雁阵,几点灯火阑珊

    几行代码

    哪里是属性,哪里是方法

    哪里又是事件

    呵,呵

    几根青丝不见额头

    分享我多年工作实际经验的成果,随喜这些有用的东西,给确实需要利用VBA的同路人。回向学习利用VBA的历历往事,不胜感慨,谨以这些文字以纪念,

    分享成果,随喜正能量

    展开全文
  • 大家好,最近推出的内容是“VBA信息获取与处理”中的部分内容,这套教程面向中高级人员,涉及范围更广,实用性更强,现在的内容是第三个专题“VBA代码的分类及如何利用代码自动关闭空闲文件”的内容。 第二节 工作簿...

    346939d9b9746ac87b0277b3b9346a70.png

    大家好,最近推出的内容是“VBA信息获取与处理”中的部分内容,这套教程面向中高级人员,涉及范围更广,实用性更强,现在的内容是第三个专题“VBA代码的分类及如何利用代码自动关闭空闲文件”的内容。

    第二节 工作簿和工作表模块代码(Workbook And Sheet Modules)

    工作簿和工作表模块是直接绑定到工作簿对象和每个工作表对象的特殊模块。工作簿的模块称为ThisWorkbook,每个工作表模块的名称与其所属工作表的名称相同。这些模块应该包含对象的事件过程,仅此而已。如果将事件过程放在标准代码模块中,Excel将找不到它们,因此不会执行它们。如果将普通过程放在工作簿或工作表模块中,则在不完全限定引用的情况下无法调用它们。

    1 工作簿和工作表对象的名称的获得

    工作簿和工作表模块有一个名为CodeName的属性,这是VBA内部了解对象的方式。默认情况下,工作簿代码名为ThisWorkbook,对于工作表,每个工作表模块都是Sheet1、Sheet2等,对于图表,则是Chart1、Chart2等。在VBA代码中可以像使用普通变量一样使用这些名称。例如:

    Sub MYNZA()

    MsgBox ThisWorkbook.Name

    MsgBox Sheet1.Name

    End Sub

    代码运行结果:

    0bf371adf2187a7615bfde64d2c55d37.png

    ae7f32b3379f9e92c21d0f5e798ad3de.png

    这很有用,因此您可以始终引用工作表,例如,即使用户从Excel重命名工作表。例如,如果有一个名为“Sheet1”的工作表,则其名称和代码名都将为Sheet1。但如果用户将工作表重命名为MySheet,则代码

    Msgbox Worksheets("Sheet1").Name

    将失败,因为不再有名为Sheet1的工作表。但是,代码

    Msgbox Sheet1.Name

    将继续工作,因为VBA仍通过其代码名Sheet1知道该工作表。

    2 工作簿和工作表对象的重命名

    在上面的讲解中我们了解到:工作簿的模块称为ThisWorkbook,每个工作表模块的名称与其所属工作表的名称相同。那么是否可以更改这个名称呢?

    可以更改ThisWorkbook或Sheet对象的代码名。若要更改模块的代码名,可在“项目资源管理器”窗口中选择该模块,然后打开“属性”窗口(F4或从“视图”菜单中),更改“名称”属性。这里需要注意一点如果在这些模块中已经有了代码之后再执行此操作,可能会遇到问题。下面结合两个例子来说明:

    a 更改ThisWorkbook对象的代码名,这时ThisWorkbook将继续引用工作簿对象。例如,如果将ThisWorkbook对象的代码名更改为MyWorkbook,则以下两行代码都将工作:

    Sub MYNZB()

    '更改名称ThisWorkbook为MyWorkbook

    MsgBox ThisWorkbook.Name

    MsgBox MyWorkbook.Name

    End Sub

    代码截图:

    7514623c8596e200446e082c5869c749.png

    代码的运行:

    d39ea54336f4ab48bf4dbc517ed7d06b.png

    5336c7f4366905184b0caff8d8d6bef2.png

    b 如果将Sheet1对象的代码名更改为MySheet1,由于不再有代号为Sheet1的工作表对象,则以下代码将失败

    Sub mynzc()

    MsgBox Sheet1.Name

    End Sub

    0081a9705ee6eafe054f4d6f686b506a.png

    运行结果:

    1275fc88995bee087bd25f7e812cdfe1.png

    c 此外,还可以使用VBA过程更改对象的代码名。例如:要将代码名为Sheet2的工作表的代码名更改为NewCodeName,请使用

    ThisWorkbook.VBProject.VBComponents("Sheet1").Name= "NewCodeName"

    要将MyWorkbook代码名改为NewWBName可以使用下面代码:

    ThisWorkbook.VBProject.VBComponents("MyWorkbook").Name = "NewWBName"

    全部代码如下:

    Sub mynzd()

    ThisWorkbook.VBProject.VBComponents("Sheet1").Name = "NewCodeName"

    ThisWorkbook.VBProject.VBComponents("MyWorkbook").Name = "NewWBName"

    End Sub

    代码截图:

    d71b400300b30a33264933de7656b550.png

    运行结果:

    6a0d9569fbef22a4b7e591d601698d76.png

    大家要注意上面的操作,可能会导致很多问题,所以除非我们事先知道自己在做什么,而且必选要做这种更改,否则不要进行这样的操作。

    例如:当我们更改ThisWorkbook对象的代码名,下面的代码:

    Msgbox ThisWorkbook.Name 将继续工作,但

    Msgbox ThisWorkbook.VBProject.VBComponents("ThisWorkbook").Name

    将失败,因为没有代码名为ThisWorkbook的对象,除非有一个ThisWorkbook的对象在对象浏览器中存在。

    本节知识点回向:工作薄和工作表模块有什么特点?如何更改他们的名称?更改名称时要注意哪些问题?

    本节内容详细代码“参考003工作表.XLSM”

    23cfb731277dad670322d50bace31e05.png

    VBA是利用Office实现自己小型办公自动化的有效手段,这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!学习VBA是个过程,也需要经历一种枯燥的感觉,如太白诗云:众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

    “水善利万物而不争”,绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。茶,满也好,少也好,不要计较;浓也好,淡也好,其中自有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。在后疫情更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。学习时微而无声,利用时则巨则汹涌。

    我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程。

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

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

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

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

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

    第六套教程:《VBA信息获取与处理》是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。如需要可以可以WeChat: NZ9668

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

    37c6c09f0ca0a22b3f81e566991ba20d.png

    每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将一阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着:

    浮云掠过,暗语无声,

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

    望星,疏移北斗,

    奈将往事雁同行。

    阡陌人,昏灯明暗,

    忍顾长亭。

    多少VBA人,

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

    怎无凭!

    分享成果,随喜正能量

    展开全文
  • 今日的内容是“VBA之EXCEL应用”的第三章“工作簿(Workbook)和工作表(Worksheet)对象(Object)”中第二节“工作簿和工作表的属性(Properties)和方法(Methods)”。“VBA之EXCEL应用”这套教程从简单的录制宏的讲解...

    f56e3c99721f3bd9cea103881188fb98.png

    今日的内容是“VBA之EXCEL应用”的第三章“工作簿(Workbook)和工作表(Worksheet)对象(Object)”中第二节“工作簿和工作表的属性(Properties)和方法(Methods)”。“VBA之EXCEL应用”这套教程从简单的录制宏的讲解,一直到窗体的搭建,内容丰富,案例众多。大家可以非常容易的掌握相关的知识,这套教程面向初学人员,共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。

    第二节 工作簿和工作表的属性(Properties)和方法(Methods)

    大家好,我们这讲讲解工作簿和工作表集合的一些属性和方法。什么是属性和方法呢?属性是对象的固有性质,它是对对象的描述,而方法则是对象能做的一些事情。下面我们来讲解一下工作表和工作簿的一些常见的属性和方法。

    1 Workbooks集合和Worksheets集合的Add方法

    Workbooks集合的Add方法将创建一个新工作簿,Worksheets集合的Add方法将创建一个新的工作表。

    我们来看下面的代码:

    Sub mynzD() 'Workbooks集合和Worksheets集合的Add方法

    Worksheets.Add

    Workbooks.Add

    End Sub

    代码截图:

    7c3e69f769841e379f9c2e0b7fd03074.png

    代码讲解:Worksheets.Add将增加一个工作表,Workbooks.Add将添加一个新的工作簿。

    2 Workbooks集合和Worksheets集合的Count属性

    Workbooks集合的Count属性将统计活动工作簿的数量,Worksheets集合的Count属性将统计活动工作表的数量。

    我们来看下面的代码:

    Sub mynzE() 'Workbooks集合和Worksheets集合的Count属性

    MsgBox "当前打开的工作簿有" & Workbooks.Count & "个"

    MsgBox "当前工作簿有" & Worksheets.Count & "个工作表"

    End Sub

    代码截图:

    b081f938d4fef4e3a65af3d6e5503561.png

    3 Path属性和FullName属性

    Excel VBA中的Path属性返回工作簿(Excel文件)的完整保存路径,Excel VBA中的FullName属性返回完整的保存路径,包括工作簿的名称。

    我们看下面的代码:

    Sub mynzF() 'Path属性和FullName属性

    MsgBox "当前打开工作簿的路径为:" & Workbooks("工作簿03.xlsm").Path

    MsgBox "当前打开工作簿的路径及名称为:" & Workbooks("工作簿03.xlsm").FullName

    End Sub

    代码截图:

    6755ffa7dfbaf16c4f11ef96e6be3876.png

    4 Close和Open方法

    Excel vba中的Close和Open方法可以用来关闭和打开工作簿。工作簿集合包含当前打开的所有工作簿对象。

    为了应用上述方法,我们要记住下面的语句:

    关闭某个文件: Workbooks("工作簿03.xlsm").Close

    关闭第一个打开或创建的工作簿:Workbooks(1).Close

    关闭当前活动的工作簿:ActiveWorkbook.Close

    关闭当前打开的所有工作簿:Workbooks.Close

    打开某个文件:Workbooks.Open ("工作簿03.xlsm")

    5 Application对象的GetOpenFilename方法

    为了应用Workbooks.Open方法打开一个文件,我们可以先取得这个文件的文件名,这时我们可以用GetOpenFilename方法,GetOpenFilename实际上并没有打开文件,只是取得一个文件的文件名。

    我们看下面的代码:

    Sub mynzG() 'GetOpenFilename方法

    Dim MyFile As String

    MyFile = Application.GetOpenFilename()

    Workbooks.Open (MyFile)

    End Sub

    代码截图:

    45c5aa94f15ed6bc2112f03e4e871a01.png

    代码解读:

    上面的代码中利用GetOpenFilename方法打开一下选择文件的对话框,然后打开这个文件。

    今日内容回向:

    1) Workbooks集合和Worksheets集合的Add方法是什么意义?

    2) Workbooks集合和Worksheets集合的Count属性是什么意义?

    3) Path属性和FullName属性是什么意义?

    4) Close和Open方法是什么意义?

    5) GetOpenFilename方法的作用是什么?

    a31935e361d8a26e7494f7ab21b74a38.png

    本讲内容参考程序文件:工作簿03.xlsm

    分享成果,随喜正能量

    VBA的应用范围及学习方法:

    VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!

    我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了七部VBA专门教程。

    第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。

    第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。

    第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

    第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,视频更易接受。

    第五套:VBA中类的解读和利用是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

    第六套教程:VBA信息获取与处理,是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。

    第七套教程:VBA之EXCEL应用 这是一部初级教程这部教程共三册,从从创建宏、对话框、工作簿和工作表对象、单元格对象等基础内容讲起,到循环结构、错误处理、字符串操作、日期和时间、事件、数组应用,函数过程等方面,一直讲解到控件和窗体对象的应用都是我们提高自己EXCEL水平的必须。

    以上各教程学习顺序:7 1 3 2 6 5或者7 4 3 2 6 5。其中第四套是对第一套的视频讲解,所以第一和第四只选其一即可。可以W^e^C^h^a^t:VBA6337(或者NZ9668),两个对象是都是可以的。

    展开全文
  • 合并工作表有2种主流使用方法:00两种方法合并工作表01VBA合并工作表01.打开VBA的编辑器,【开发工具】【Visual Basic】02.进入VB编辑器,双击选择This workbook 对象下,复制以下代码进去:以下为代码↓↓ Sub 合并...
  • 学习Excel技术,关注微信公众号:...在输出工作表中,前两行为模块所在工作簿名称和工程名称。并且,代码会绕过受保护的VBA工程,同时如果工作簿中没有代码,也会在输出工作表中说明。下面是完整的代码:Sub Get...
  • Sub xcj() ...) '获取当前路径下所有的文件名称,这里所指工作簿名称名称都一样,如下,只是结尾的数字不一样 Set wk_zb = Workbooks("访问统计表-Office 高级应用与VBA(INF0402A)-2018年04月0...
  • (一)有时需要在工作表中引用同一工作簿中其他工作表名称,当工作表数量较多时,逐一手工输入有些繁琐,这时可以添加一个自定义函数来快速获取工作名称,方法如下: 按Alt+F11,打开VBA编辑器,单击菜单“插入→...
  • VBA打开工作簿后,通常一个工作簿有若干个工作表Sheet,访问其中一个工作表有三种方法,代码如下: ThisWorkbook.Sheets(1) ThisWorkbook.Sheets.Item (1) ThisWorkbook.Sheets("Sheet1")'Sheet1为工作表名称 二、...
  • 大家好,我们今日讲解“VBA信息获取与处理”教程中第十三个专题“VBA如何让Excel工作表按指定的顺序排列”的第一节“实现工作表按名称排序”,这个专题是非常实用的知识点,希望大家能掌握利用。在信息获取后,我们...
  • 大家好,我们今日讲解"VBA信息获取与处理"教程中第二十个专题"定制工作表函数获取工作表的信息"的第4节"获取工作薄计数、名称及路径信息的函数",这个专题是非常实用的知识点,希望大家能掌握利用。教程会提供配套的...
  • 比如,当我们进行跨工作簿数据查询及汇总时,在不打开相关工作簿的情况下,如何快速遍历指定工作簿每个工作表的名称?——Connection对象的OpenSchema方法可以帮助我们解决此类问题;它可以从提供者获取数据库模式的...
  • 工作簿中的每个工作表都是一个Worksheet对象,所有Worksheet对象构成了Worksheets集合。我们使用下面的这一张图来完整解析Worksheet对象,如下图1所示。图1工作表的名称如图1所示,上面是Excel主界面,下...
  • 今天简单几步教你快速汇总文件名称并创建目录管理:一、vba从文件夹中获取工作簿名称Sub lianjie()'从文件夹中提取工作簿名称Dim str As StringDim path As String path = "C:甥敳獲AdministratorDesktop链接"Dim i ...
  • 比如,当我们进行跨工作簿数据查询及汇总时,在不打开相关工作簿的情况下,如何快速遍历指定工作簿每个工作表的名称?——Connection对象的OpenSchema方法可以帮助我们解决此类问题;它可以从提供者获取数据库模式的...
  • VBA常用技巧

    2014-12-21 16:39:28
    40-1 使用工作簿名称 12 40-2 使用工作簿的索引号 12 40-3 使用ThisWorkbook 12 40-4 使用ActiveWorkbook 12 技巧41 新建工作簿文件 12 技巧42 打开指定的工作簿 12 技巧43 判断指定工作簿是否打开 12 43-1 遍历...
  • Excel VBA技巧实例手册

    2016-07-28 22:29:39
    技巧102查看工作簿的内置属性 技巧103设置工作簿密码 技巧104查看用户状态信息 技巧105设置工作簿的数字精度 技巧106激活工作簿 技巧107保护工作簿 技巧108设置名称 技巧109判断工作簿是否存在 技巧110判断打开的...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    40-1 使用工作簿名称 99 40-2 使用工作簿的索引号 99 40-3 使用ThisWorkbook 100 40-4 使用ActiveWorkbook 101 技巧41 新建工作簿文件 101 技巧42 打开指定的工作簿 103 技巧43 判断指定工作簿是否打开 106 43-1 ...
  • VBA与数据库

    2015-11-19 18:07:38
    •实例9-1 从工作簿的某个工作表中查询获取数据(ADO) 192 •实例9-2 从工作簿的全部工作表中查询获取数据(ADO) 193 •实例9-3 利用DAO从工作表中查询数据 194 •实例9-4 查询其他工作簿的数据(ADO) 195 •实例...
  • 02016获取当前宏代码运行的工作簿名称 02017获取所有打开的工作簿路径 02018获取当前活动工作簿的路径 02019获取当前宏代码运行的工作簿路径 02020获取包括完整路径的工作簿名称 02021获取工作簿的基本名称 02022...
  • Excel_VBA教程

    2014-09-22 11:36:34
    31获取工作表信息 73 32往工作表输入数据 73 33返回工作表中的信息 74 34单元格格式 74 35移动,复制和删除单元格 74 36操作工作簿和工作表 75 37操作窗口(WINDOWS) 76 38管理EXCEL应用程序 76 39接下来…… 77 第...
  • 大家好,我们今日讲解“VBA信息获取与处理”教程中第十三个专题“VBA如何让Excel工作表按指定的顺序排列”的第一节“实现工作表按名称排序”,这个专题是非常实用的知识点,希望大家能掌握利用。在信息获取后,我们...
  • Excel VBA与数据库整合应用范例精讲

    热门讨论 2011-10-29 18:48:38
    实例9-5 获取其他工作簿中的工作表名称清单(ADOX) 实例9-6 利用ADO对工作表数据进行多重排序 实例9-7 利用ADO按照字符的长度对数据进行排序 实例9-8 比较两张表,将两个表中相同的行数据抓取出来 实例9-9 ...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    31获取工作表信息 73 32往工作表输入数据 73 33返回工作表中的信息 74 34单元格格式 74 35移动,复制和删除单元格 74 36操作工作簿和工作表 75 37操作窗口(WINDOWS) 76 38管理EXCEL应用程序 76 39接下来…… 77 第...
  • 1.上期我们聊了SQL常用查询语句中的字段查询,其简化版语法如下:SELECT 字段名 FROM 表名当时我们说,FROM关键词指明了要获取字段信息的表的名称。...此外还有单元格区域引用、跨工作簿引用表等。所以我...
  • 实例9-5 获取其他工作簿中的工作表名称清单(ADOX) 实例9-6 利用ADO对工作表数据进行多重排序 实例9-7 利用ADO按照字符的长度对数据进行排序 实例9-8 比较两张表,将两个表中相同的行数据抓取出来 实例9-9 ...
  • Excel VBA 基础教程

    2019-01-01 18:51:06
    目 录 一、VBA语言基础...................................................................................................................1 第一节 标识符....................................................
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    一、VBA语言基础...................................................................................................................1 第一节标识符...........................................................

空空如也

空空如也

1 2 3
收藏数 59
精华内容 23
关键字:

vba获取工作簿名称