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
这个函数功能是返回一个字符串,字符串包含了所有磁盘的盘符。
经过对字符串转换为数组处理后,把数组赋值给数据表。
所以,本文重点也是这个函数,它实际上用到了几个重要的知识点:
- CreateObject函数,新建一个文件操作对象。
- Drives对象的Driveletter属性,返回物理本地驱动器或网络共享的驱动器盘符。
- Mid()函数,截取字符串函数。
CreaeObject函数上一节有过详细介绍,其余两个还没做完整介绍。
好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!