本文作者:office教程网

标识并使用VBA代码识别特定的工作簿

office教程网 2023-08-08 18:40:46
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:

有时候,需要使用代码确认某个工作簿是否是特定模板创建,或者是否属于某个应用程序,如果是就打开并操作该工作簿或应用程序。如何实现呢?

一种常用的方法是对工作簿文件添加自定义的文档属性,这样让代码在不打开工作簿的情况下判断是否是想要的工作簿。

为工作簿添加自定义文档属性

单击“文件——信息——属性——高级属性”,打开工作簿的“属性”对话框。选取“自定义”选项卡,在名称文本框中输入属性名称,示例中是“MyTestBook”,在类型下拉列表中选择“是或否”,选取取值选项按钮中的“是”,单击“添加”按钮,如下图1所示,为该工作簿添加自定义文档属性。

图1

安装工具库DSOFile.dll

我们要使用名为DSOFile.dll的COM对象从关闭的工作簿中读取文档属性,因此,需要下载并安装该DLL。可以在Microsoft的网站上下载:

下载后,双击安装。安装完毕后,选择VBE的菜单“工具——引用”命令,在“引用”对话框中找到并选取“DSO OLE Document Properties Reader 2.1”前的复选框,单击“确定”,如下图2所示。

图2

编写检查自定义文档属性的函数

下面的自定义函数FileHasSomeProperty用来检查指定的文件是否具有指定的文档属性,其中参数sFile接受指定的文件,参数sProperty接受指定文档属性名,如果sFile中具有名为sProperty的属性,则返回True,否则返回False。

‘检查指定文件是否具有特定的文档属性

Function FileHasSomeProperty(ByVal sFileAs String, _

ByVal sProperty As String) As Boolean

Dim objDSO As DSOFile.OleDocumentProperties

Dim objProperty As DSOFile.CustomProperty

‘使用DSOFile来获取指定文件的文档属性

Set objDSO = New DSOFile.OleDocumentProperties

objDSO.Open sFile

‘遍历自定义文档属性集合

‘如果存在指定名称且取值为是的属性

‘则返回True

For Each objProperty In objDSO.CustomProperties

excel图表2个常用的数据验证技巧

数据验证(以前称为“数据有效性”)是一项非常有用的功能。使用数据验证,不需要VBA代码,就能检查输入的数据是否满足规则要求,从而保证数据输入的正确性。下面介绍2个常用的数据验证技巧。 技巧1:确保输入不重复的数据 如果要求在某个单元格区域中输入的数据不能重复,那么可以使用数据验证来保证输入数据的唯一性。 1.选择

If (objProperty.Name = sProperty) _

And (objProperty.Type =dsoPropertyTypeBool) Then

FileHasSomeProperty = True

Exit For

End If

Next objProperty

objDSO.Close

End Function

测试

下面的代码由用户选择工作簿,测试工作簿中是否具有名为MyTestBook的属性,如果是,则弹出下图3所示的消息。

Sub testFileHasSomeProperty()

Dim vFileNames As Variant

Dim i As Long

Dim strPropertyName As Variant

vFileNames = Application.GetOpenFilename(“Excel工作簿(*.xls*), *.xls*”, , “选择工作簿”, , True)

If Not IsArray(vFileNames) Then Exit Sub

strPropertyName = “MyTestBook”

For i = LBound(vFileNames) To UBound(vFileNames)

If FileHasSomeProperty(vFileNames(i), strPropertyName) Then

MsgBox “具有特定标识的工作簿存在!”

End If

Next i

End Sub

如果所选工作簿具有指定的属性,则弹出下图3所示的消息。

图3

如何每3列中同一行只允许一个单元格中能输入数据?

问:工作表同一行中每三个单元格同时只能有一个单元格显示数据。如下图 1所示,在单元格区域 B6:D6中,如果在单元格 B6中输入了数据,那么单元格 C6和 D6中的内容就会被清除;如果在单元格 C6中输入的数据,那么单元格 B6和 D6中的内容会被清除;如果在单元格 D6中输入的数据,那么单元格 B6和 C6中,内容就

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:标识并使用VBA代码识别特定的工作簿发布于2023-08-08 18:40:46
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: