Q1:如何激活某一工作表中的某一单元格?
A1:激活步骤如下:激活工作表->选中包含该单元格的区域 ->激活单元格。
如下示例选定工作表 Sheet1 上的单元格区域 A1:C3,并激活单元格 B2。
Sub ActivateCell()
Worksheets("Sheet1").Activate
Range("A1:C3").Select
Range("B2").Activate
End Sub
Q2:如何选中区域中的某一个单元格?
A2:使用Range对象的Cells属性。
如下示例选中工作表 Sheet3 上的单元格区域 A1:C3中位于第1行第2列的单元格。
Sub SelectCell()
Worksheets("Sheet3").Activate
Range(Cells(1,1), Cells(3,3)).Cells(1,2).Activate
End Sub
Q3:如何创建与使用Range名称?
A3:创建Range名称的方法如下:在工作表中选择好区域,点击菜单“公式”->“名称管理器”->“新建”->输入名称(如:“RN_Template”)->确定。
使用Range名称的方法如下:
Sub UseRangeName()
Worksheets("Sheet1").Activate
Range("RN_Template").Cells(1,1).Activate
End Sub
Q4:如何获取当前工作簿所在的目录路径?
A4:参考如下写法:
Sub GetCurrentPath()
MsgBox "The path is " & ActiveWorkbook.Path
End Sub
Q5:如何批量注释?
A5:右键点上方菜单区,将编辑前面打上勾,如下图所示。
图1:右键点击菜单栏空白处。
图2:下图中篮框内的两个图标分别表示“设置注释块”和“解除注释块”。
Q6:如何从字符串右边取出指定数量的字符?
A6:如下示例从字符串dirPath右边取出两个字符:
Sub GetRightSubStr()
dirPath = "abcdefghijklmn"
substring = Right(dirPath,2)
MsgBox substring
End Sub
运行结果:
Q7:【Office2007】如何在Excel中打开“开发工具”?
A7:点击左上角“Office按钮”->“Excel选项”->在“常用”选项卡中选中“在功能区显示‘开发工具’选项卡”复选框。见下图:
Q8:如何新建/插入工作表?
A8:如下示例在当前工作簿中在所有工作表之后插入一个名为“labelName”的新工作表。
Sub AddWorksheet(ByVal labelName As String)
Dim sht As Worksheet
With ThisWorkbook
Set sht = .Worksheets.Add(after:=.Sheets(.Sheets.Count))
End With
sht.name = labelName
Set sht = Nothing
End Sub
Q9:如何判断工作表为空表?
A9:如下示例判断“Sheet1”是否为空工作表,如果是则删除。
Function IsBlankSheet(sht As Variant) As Boolean
If TypeName(sht) = "String" Then Set sht = Worksheets(sht)
If Application.CountA(sht.UsedRange.Cells) = 0 Then
IsBlankSheet = True
Else
IsBlankSheet = False
End If
End Function
Sub DeleteBlankWorksheet()
If IsBlankSheet("Sheet1") Then Sheets("Sheet1").Delete
End Sub
Q10:如何删除工作表?
A10:如下示例删除sheet1和sheet2之外的所有工作表。
Sub DeleteWorksheets()
Dim i As Long
Application.DisplayAlerts = False
For i = Sheets.Count To 3 Step -1
Sheets(i).Delete
Next i
Application.DisplayAlerts = True
End Sub
如下示例删除工作簿中所有的空工作表。
Sub DeleteBlankWorksheet()
Dim sht As Worksheet
Application.DisplayAlerts = False
For Each sht In Worksheets
If IsBlankSheet(sht) Then sht.Delete
Next
Application.DisplayAlerts = True
End Sub