当前位置:文档之家› 各种Excel VBA的命令(3)

各种Excel VBA的命令(3)

本示例向活动工作簿添加新工作表,并设置该工作表的名称.
Set newSheet = Worksheets.Add
https://www.doczj.com/doc/954458013.html, = "current Budget"

本示例关闭工作簿 Book1.xls,但不提示用户保存所作更改.Book1.xls 中的所有更改都不会保存.
Application.DisplayAlerts = False
Workbooks("BOOK1.XLS").Close
Application.DisplayAlerts = True

示例显示每一个可用加载宏的路径及文件名.
For Each a In AddIns
MsgBox a.FullName
Next a

ChDir 语句
改变当前的目录或文件夹.
ChDir path
在 Power Macintosh 中,默认驱动器总是改为在 path 语句中指定的驱动器.完整
路径指定由卷标名开始,相对路径由冒号 (:) 开始. ChDir 可以辨认路径中指定的
别名:ChDir "MacDrive:Tmp" ' 在 Macintosh 中

本示例显示当前路径分隔符.
MsgBox "The path separator character is " & _
Application.PathSeparator

Move 方法
将一个指定的文件或文件夹从一个地方移动到另一个地方.
语法
object.Move destination
Move 方法语法有如下几部分:
部分 描述
object 必需的.始终是一个 File 或 Folder 对象的名字.
destination 必需的.文件或文件夹要移动到的目标.不允许有通配符.

CreateFolder 方法
创建一个文件夹.
语法
object.CreateFolder(foldername)
reateFolder 方法有如下几部分:
部分 描述
object 必需的.始终是一个 FileSystemObject 的名字.
foldername 必需的.字符串表达式,它标识创建的文件夹.

本示例使用 MkDir 语句来创建目录或文件夹.如果没有指定驱动器,新目录或文件夹将会建在当前驱动器中.
MkDir "MYDIR" ' 建立新的目录或文件夹.

Name 语句示例
本示例使用 Name 语句来更改文件的名称.示例中假设所有使用到的目录或文件夹都
已存在. 在 Macintosh 中,默认驱动器名称是 “HD” 并且路径部分由冒号取代
反斜线隔开.
Dim OldName, NewName
OldName = "OLDFILE": NewName = "NEWFILE" ' 定义文件名.
Name OldName As NewName ' 更改文件名.
OldName = "C:MYDIROLDFILE": NewName = "C:YOURDIRNEWFILE"
Name OldName As NewName ' 更改文件名,并移动文件.

本示例设置替换启动文件夹.
Application.AltStartupPath = "C:EXCELMACROS"
FolderExists 方法
如果指定的文件夹存在返回 True,不存在返回 False.
语法
object.FolderExists(folderspec)

本示例在单元格中启用编辑.
Application.EditDirectlyInCell = True
程序说明:
几种用VBA在单元格输入数据的方法:
Public Sub Writes()
1-- 2 方法,最简

单在 "[ ]" 中输入单元格名称.
1 [A1] = 100 '在 A1 单元格输入100.
2 [A2:A4] = 10 '在 A2:A4 单元格输入10.
3-- 4 方法,采用 Range(" "), " " 中输入单元格名称.
3 Range("B1") = 200 '在 B1 单元格输入200.
4 Range("C1:C3") = 300 '在 C1:C3 单元格输入300.
5-- 6 方法,采用 Cells(Row,Column),Row是单元格行数,Column是单元格栏数.
5 Cells(1, 4) = 400 '在 D1 单元格输入400.
6 Range(Cells(1, 5), Cells(5, 5)) = 50 '在 E1:E 5单元格输入50.
End Sub

VBALesson3 程序说明:
如何利用 Worksheet_SelectionChange 输入数据的方法.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target = 100
End Sub

VBALesson4 程序说明:
如何利用 Worksheet_SelectionChange 在限定的单元格输入数据的方法.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row >= 2 And Target.Column = 2 Then
Target = 100
End If
End Sub

VBALesson5 程序说明:
比较 Worksheet_SelectionChange() 与用按钮 CommandButton1_Click() 来执行程序二者的方法与写法有何不同.
Worksheet_SelectionChange()事件
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row >= 2 And Target.Column = 2 Then
Target = 100
End If
End Sub
按鈕 CommandButton1_Click()
Private Sub CommandButton1_Click()
If ActiveCell.Row >= 2 And ActiveCell.Column >= 3 Then
ActiveCell = 100
End If
End Sub
二者执行方法最大的地方,在于 Worksheet_SelectionChange() 是自动的,你不用了解他是怎么完成工作的.按钮 CommandButton1_Click() 是人工的,比 SelectionChange()多一道手续,就是要去按那接钮,程序才会执行.SelectionChange() 有一个参数 Target 可用;CommandButton1_Click ()没有.所以我们要用 ActiveCell 内定函数来取代Target,ActiveCell 与 Target最大的不同点他只能指定一个单元格.就是你选取多个单元格也只有最上面的单元格会加上数据;用 Selection 取代ActiveCell, 用法就跟 Target 一样了.

VBALesson 6 程序说明:
完整的 If…Then ┅ End 逻辑判断式.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row >= 2 And Target.Column = 2 Then
Target = 200
ElseIf Target.Row >= 2 And Target.Column = 3 Then
Target = 300
ElseIf Target.Row >= 2 And Target.Column = 2 Then
Target = 400
Else
Target = 500
End If
End Sub
这是个完整的 If 逻辑判断式,意思是说,假如 If 後的判断式条件成立的话,就执行第二条程序,否则假如 ElseIf 後的判断式条件成

立的话,就执行第四条程序
,否则假如另一个 ElseIf 後的判断式条件成立的话,就执行第六条程序.Else 的意思是说,假如以上条件都不成立的话,就执行第八条程序.他的执行方式是假如 IF 的条件成立的话,就不执行其它ElseIf 及Else 的逻辑判断式,假如 If 後的条件不成立的话才会执行 ElseIf 或 Else 逻辑判断式.第二个 ElseIf後的条件因为与 IF 後的条件一样,所以这个判断式後面的 Target=400将是永远无法执行到的程序.

相关主题
文本预览
相关文档 最新文档