盘符(盘符有个感叹号和锁)

No.1

获取磁盘盘符是编程过程中一个基本的操作,任何编程都必须要学会这个功能。

也就是说要明确电脑工作的基本环境,磁盘符号是最基本的一个项目。

就比如,一个人到了某地方工作或学习,至少要知道在什么地方吧!是中国还是美国,还是英国。

如何获取磁盘盘符其实也很容易,但是vba提供了一些相对复杂的工具。

需要我们仔细地学习并认识清楚。

如何获取电脑盘符,VBA编程技术,深度讲解

No.2

首先来认识一下CurDir(Driver)函数。

此函数返回Drive的工作地址。

Drive是磁盘盘符,如:C:

CurDir("C:")返回C盘的工作地址,这个地址根据不同电脑设置或Excel安装地址而不同。

似乎,这个函数并不是文档应该表达的内容。

恰恰相反,它是知道某个磁盘盘符后返回工作地址的一个函数。

那么,如何知道电脑包含了哪些磁盘呢?

继续....

下面了解一下CurDir函数的语法:

如何获取电脑盘符,VBA编程技术,深度讲解

No.3

下图可以清楚地看到左侧是两个按钮,一个列表框。

第一个按钮可以刷新当前电脑中的盘符。

所以,这个按钮后台代码,就实现了找出磁盘盘符的功能。

如何获取电脑盘符,VBA编程技术,深度讲解

列出盘符出,任意单击磁盘列表项目,自动弹出当前磁盘的工作目录。

也就是CurDir函数给出的结果。没想到在这里用到了CurDir函数。

第二个按钮实现图中表格内容的刷新功能。

也就是把全部磁盘的工作目录添加到表中,这个很实用,一目了然。

下面看一下代码:

如何获取电脑盘符,VBA编程技术,深度讲解

No.4

刷新工作表按钮代码

Private Sub AddSheetData()'刷新数据表Dim Rowi As LongRowi = Me.Cells(Me.Cells.Rows.Count, 3).End(xlUp).RowMe.Range(Me.Cells(3, 3), Me.Cells(Rowi, 5)).ClearContentsDim cell As RangeSet cell = Range("C3")Dim DsDs = Split(getDrivers, ",")Dim ir As Integer, irn As Integer, cellir As Integercellir = cell.Rowir = cell.Rowirn = ir + UBound(Ds)For ir = cellir To irn    With cell.Offset(ir - cellir, 0)        .Formula = "=row()-" & cellir - 1        With .Offset(0, 1)            .Value = Ds(.Offset(0, -1).Value - 1)            With .Offset(0, 1)                .Value = VBA.CurDir(.Offset(0, -1).Value)            End With        End With    End WithNext irEnd Sub

上面例子中用到一个自定义函数getDrivers()

Function getDrivers()    Dim fso, Dv    Set fso = CreateObject("Scripting.filesystemobject")    Dim D, dx     Set D = fso.drives     For Each dx In D        Dv = Dv & dx.driveletter & ": ,"    Next dx    Dv = VBA.Mid(Dv, 1, VBA.Len(Dv) - 1)    getDrivers = DvEnd Function

这个函数功能是返回一个字符串,字符串包含了所有磁盘的盘符。

经过对字符串转换为数组处理后,把数组赋值给数据表。

所以,本文重点也是这个函数,它实际上用到了几个重要的知识点:

  1. CreateObject函数,新建一个文件操作对象。
  2. Drives对象的Driveletter属性,返回物理本地驱动器或网络共享的驱动器盘符。
  3. Mid()函数,截取字符串函数。

CreaeObject函数上一节有过详细介绍,其余两个还没做完整介绍。

学习的路上还很漫长。

欢迎关注、收藏

上一篇: 平安信用卡兑换里程(平安积分换里程比例)
下一篇: 融资租赁交易中心(融资租赁信息化系统)
《盘符(盘符有个感叹号和锁)》文档下载: PDF DOC TXT

猜你喜欢