分享

自学VBA,更进一步了解Workbook

 leafcho 2018-09-07

昨天有写到,一个Excel文件就是一个Workbook工作簿,一个文件就会有它存储地址、名称、全路径,我们怎么通过VBA代码来获取了?如下:ThisWorkbook 代表的是当前正在操作的工作簿,通过Workbook的Name、Path、FullName就可以获取到这些信息。

自学VBA,更进一步了解Workbook

在写VBA的时候,我们又怎么通过代码来创建一个新的Excel工作簿了?同样使用Workbooks对象的Add方法就可以创建了,如下图:

Sub AddNewWorkbook()

Workbooks.AddActiveWorkbook.SaveAs Filename:='C:\Users\HP-PC\Desktop\工作簿1.xlsx', FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

End Sub

自学VBA,更进一步了解Workbook

新通过Add方法创建一个新的工作簿,然后通过SaveAs存储到对于的文件夹中,你可以按照我贴的代码自己执行看一下效果。这里要注意,在SaveAs中有一个 FileFormat参数,表示我们在存储工作簿的时候要存储为什么类型,如不同的xls/xlsx工作簿,或者xlsm可以保存VBA宏代码的工作簿等等,有4总类型。大家可以自己试一试。我们创建了一个新的工作簿了,但是我想打开一个已经存在的工作簿怎么编写VBA代码了,看如下代码:

Sub OpenWorkbook()

Workbooks.Open Filename:='C:\Users\HP-PC\Desktop\工作簿1.xlsx', UpdateLinks:=False, ReadOnly:=True

End Sub通过Open的方法来打开一个存在的工作簿,大家看我后面还给了两个其他的参数,这个是我们在使用过程中会经常加上的。第一个ReadOnly,如字面意思,就是以只读方式打开还是可写的方式打开,只读的方式打开的时候对于工作簿内修改将不会动到原始的文件,非只读方式打开就可以保存对工作簿的修改了。第二个Updatelinks,有一种场景,Excel内容不多,但是打开却非常的慢,不管是自己手动双击打开,还是通过VBA代码去打开都很慢,其实很有可能是因为你打开的这个Excel关联了其他的Excel,所以导致你打开的时候会去引用其他的Excel而慢了。UpdateLinks的设置就是,为True表示加载关联项,未False表示不加载关联项,在设置了False以后你会发现Excel打开的速度快多了。

自学VBA,更进一步了解Workbook

最后一个要吧打开的工作簿关闭掉,使用Close方法,如下代码和截图:

Sub CloseWorkbook()

Workbooks(1).Close SaveChanges:=False

End Sub

自学VBA,更进一步了解Workbook

运行一下,第一个工作簿关闭了,可以试一试。 SaveChanges参数表示存储的时候是否需要保存对工作簿的修改,True表示要保存修改,如果为False忽略修改

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多