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.Cell, 3).End(xlUp).Row Me.Range(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("Scri;) Dim D, dx Set D = For Each dx In D Dv = Dv & dx.driveletter & ": ," Next dx Dv = VBA.Mid(Dv, 1, VBA.Len(Dv) - 1) getDrivers = Dv End Function
这个函数功能是返回一个字符串,字符串包含了所有磁盘的盘符。
经过对字符串转换为数组处理后,把数组赋值给数据表。
所以,本文重点也是这个函数,它实际上用到了几个重要的知识点:
- CreateObject函数,新建一个文件操作对象。
- Drives对象的Driveletter属性,返回物理本地驱动器或网络共享的驱动器盘符。
- Mid()函数,截取字符串函数。
CreaeObject函数上一节有过详细介绍,其余两个还没做完整介绍。
学习的路上还很漫长。
欢迎关注、收藏