盘符是什么,如何获取电脑盘符?

营销圈公众号引导关注

No.1

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

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

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

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

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

盘符是什么,如何获取电脑盘符?

No.2

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

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

Drive是磁盘盘符,如:C:

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

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

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

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

继续….

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

盘符是什么,如何获取电脑盘符?

No.3

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

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

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

盘符是什么,如何获取电脑盘符?

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

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

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

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

下面看一下代码:

盘符是什么,如何获取电脑盘符?

No.4

刷新工作表按钮代码

Private Sub AddSheetData()
'刷新数据表
Dim Rowi As Long
Rowi = Me.Cells(Me.Cells.Rows.Count, 3).End(xlUp).Row
Me.Range(Me.Cells(3, 3), Me.Cells(Rowi, 5)).ClearContents
Dim cell As Range
Set cell = Range("C3")
Dim Ds
Ds = Split(getDrivers, ",")
Dim ir As Integer, irn As Integer, cellir As Integer
cellir = cell.Row
ir = cell.Row
irn = 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 With
Next ir
End 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 = Dv
End Function

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

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

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

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

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

好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!

版权声明:本站部分文章来源互联网用户自发投稿,主要目的在于分享信息,版权归原作者所有,不承担相关法律责任。如有侵权请联系我们反馈邮箱yingxiaoo@foxmail.com,我们将在7个工作日内进行处理,如若转载,请注明本文地址:https://www.yingxiaoo.com/137055.html