|
激活工作簿
Sub MakeActive()
Workbooks("MyBook.xls").Activate
End Sub
创建新工作簿
Sub AddOne()
Workbooks.Add
End Sub
Sub AddNew()
Set newBook = Workbooks.Add
With newBook
.Title = "1995 Sales"
.Subject = "Sales"
.SaveAs filename:="95Sales.xls"
End With
End Sub
打开工作簿
Sub OpenUp()
Workbooks.Open("C:\MyFolder\MyBook.xls")
End Sub
用编号引用工作表
Sub FirstOne()
Worksheets(1).Activate
End Sub
Sub FourthOne()
Sheets(4).Activate
End Sub
用名称引用工作表
Worksheets("Sheet1").Activate
Charts("Chart1").Activate
DialogSheets("Dialog1").Activate
可用 Sheets 属性返回工作表、图表、模块表或对话框编辑表;Sheets 集合包含了所有这些表。
下例激活活动工作簿内的图表“Chart1”。
Sub ActivateChart()
Sheets("Chart1").Activate
End Sub
用快捷记号引用单元格
Sub ClearRange()
Worksheets("Sheet1").[A1:B5].ClearContents
End Sub
Sub SetValue()
[MyRange].Value = 30
End Sub
按相对于其他单元格的方式来引用单元格
Sub Underline()
ActiveCell.Offset(1, 3).Font.Underline = xlDouble
End Sub
用 Range 对象引用单元格
Sub Random()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:D5")
myRange.Formula = "=RAND()"
myRange.Font.Bold = True
End Sub
引用工作表上的所有单元格
Sub ClearSheet()
Worksheets("Sheet1").Cells.ClearContents
End Sub
引用若干单元格区域
Sub ClearRanges()
Worksheets("Sheet1").Range("C5:D9,G9:H16,B14:D18"). _
ClearContents
End Sub
Sub ClearNamed()
Range("MyRange, YourRange, HisRange").ClearContents
End Sub
Sub MultipleRange()
Dim r1, r2, myMultipleRange As Range
Set r1 = Sheets("Sheet1").Range("A1:B2")
Set r2 = Sheets("Sheet1").Range("C3:D4")
Set myMultipleRange = Union(r1, r2)
myMultipleRange.Font.Bold = True
End Sub
Sub FindMultiple()
If Selection.Areas.Count > 1 Then
MsgBox "Cannot do this to a multiple selection."
End If
End Sub
在单元格区域中循环
Sub RoundToZero1()
For counter = 1 To 20
Set curCell = Worksheets("Sheet1").Cells(counter, 3)
If Abs(curCell.Value) < 0.01 Then curCell.Value = 0
Next counter
End Sub
Sub RoundToZero2()
For Each c In Worksheets("Sheet1").Range("A1:D10").Cells
If Abs(c.Value) < 0.01 Then c.Value = 0
Next
End Sub
如果不知道要循环的单元格区域的确切边界,可用 CurrentRegion 属性返回活动单元格周围的区域。
例如,下述过程在工作表上运行时,将在活动单元格周围的区域内循环,将所有绝对值小于 0.01 的数字都设置为 0(零)。
Sub RoundToZero3()
For Each c In ActiveCell.CurrentRegion.Cells
If Abs(c.Value) < 0.01 Then c.Value = 0
Next
End Sub
用 A1 样式的记号引用单元格和单元格区域
Sub FormatRange()
Workbooks("Book1").Sheets("Sheet1").Range("A1:D5") _
.Font.Bold = True
End Sub
下表演示了用于 Range 方法的一些 A1-样式的引用。
引用 含义
Range("A1") 单元格“A1”
Range("A1:B5") 从单元格“A1”到单元格“B5”的区域
Range("C5:D9,G9:H16") 多块的选定区域
Range("A:A") “A”列
Range("1:1") 第一行
Range("A:C") 从“A”列到“C”列的区域
Range("1:5") 从第一行到第五行的区域
Range("1:1,3:3,8:8") 第 1、3 和 8 行
Range("A:A,C:C,F:F") “A”列、“C”列和“F”列
用编号引用单元格
Sub EnterValue()
Worksheets("Sheet1").Cells(6, 1).Value = 10
End Sub
Sub CycleThrough()
Dim counter As Integer
For counter = 1 To 20
Worksheets("Sheet1").Cells(counter, 3).Value = counter
Next counter
End Sub
引用行或列
Sub RowBold()
Worksheets("Sheet1").Rows(1).Font.Bold = True
End Sub
Rows(1) 第一行
Rows 工作表上所有的行
Columns(1) 第一列
Columns("A") 第一列
Columns 工作表上所有的列
Sub SeveralRows()
Worksheets("Sheet1").Activate
Dim myUnion As Range
Set myUnion = Union(Rows(1), Rows(3), Rows(5))
myUnion.Font.Bold = True
End Sub
Sub create_word()
' Create a Word Document by VBA
Set appWD = CreateObject("Word.Application")
appWD.Visible = True
appWD.documents.Add
appWD.Selection.TypeText Text:="aaa"
appWD.Selection.TypeParagraph
appWD.Quit
End Sub |
|