A65536].End(xlUp).Row
[A1].End(xlDown).Row
[IV1].End(xlToLeft).Column
[A1].End(xlToRight).Column
Application.CommandBars("Standard").Controls(2).BeginGroup=True '在常用工具栏的第二个按钮前插入分隔符
Cells.WrapText = False
[A1:B10].SpecialCells(xlCellTypeBlanks).Rows.Hidden = True
'有空格即隐藏行
[A2].parent.name
'返回活动单元格的工作表名
[A2].parent.parent.name
'返回活动单元格的工作簿名
如下代码可使工作簿打开后30秒(或闲置30秒)内不输入、不重新选择等,自动关闭工作簿
Private Sub Workbook_Open()
'工作簿打开事件
tt
'工作簿打开时启动 tt 过程
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) '工作表变化事件
tt
'工作表中任一单元格有变化时启动 tt 过程
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) '工作表选择变化事件
tt
'工作表中单元格的选择有变化时启动 tt 过程
End Sub
Sub tt()
'tt 过程
Dim myNow As Date, BL As Integer
'定义myNow为日期型;定义BL为长整型
myNow = Now
'把当前的时间赋给变量myNow
Do
'开始循环语句Do
BL = Second(Now) - Second(myNow)
'循环中不断检查变量BL的值
If BL = 30 Then GoTo Cl
'当BL=30即跳转到CL
DoEvents
'转让控制权,以便sheets可继续操作
Loop Until BL > 30
'当BL>30即跳出循环
Exit Sub
Cl:
Application.EnableEvents = False
'避免引起其他事件
ActiveWorkbook.Close True
'关闭活动工作簿并保存
Application.EnableEvents = True
'可触发其他事件
End Sub
range("e4").addcomment.Text "代头" & Chr(10) & "内容……"
'添加批注
range("e4").Comment.Visible = True
'显示批注
把工作簿中所有工作表的指定列调整为最佳列宽:
Sub 调整列宽()
Dim i%
For i = 1 To Sheets.Count
'遍历工作簿中所有的工作表
Sheets(i).Columns("A:K").AutoFit
'把每个工作表的[A:K]列调整为最佳列宽
Next i
End Sub
Do循环语句的几种形式:
1.
Do While i>1
'条件为True时执行
... ... '要执行的语句
Loop
2.
Do Until i>1
'条件为False时执行
... ... '要执行的语句
Loop
3.
Do
... ... '要执行的语句
Loop While i>1
'条件为True时执行
4.
Do
... ... '要执行的语句
Loop Until i>1
'条件为False时执行
5.While...Wend 语句
While i>1
'条件为True时执行
... ... '要执行的语句
Wend
勾选"VBA项目的信任"
Application.SendKeys "%(tmstv){ENTER}"
'在 Excel 窗口操作
Application.SendKeys "%(qtmstv){ENTER}"
'在 VBE 窗口操作
Application.CommandBars("命令按钮名称").Position = msoBarFloating '使[命令按钮]悬浮在表格中
Application.CommandBars("命令按钮名称").Position = msoBarTop
'使[命令按钮]排列在工具栏中
ActiveSheet.protect Password:="wshzw"
'为工作表保护加口令
ActiveSheet.Unprotect Password:="wshzw"
'解除工作表保护
Activesheet.ProtectContents
'判断工作表是否处于保护状态
工作表的复制与命名
Sub wshzw()
Dim i As Integer
For i = 1 To 5
Sheets("Sheet1").Copy After:=Sheets(1)
'Before/After 复制新表在 Sheets("Sheet1") 前/后
ActiveSheet.Name = i & "月"
'为复制的新表命名
Next i
Sheets("Sheet1").Name = "总表"
'为 Sheets("Sheet1") 改名
End Sub
Application.EnableEvents = False
......
Application.EnableEvents = True
'抑制事件连锁执行
[A2].parent.name
[A2].parent.parent.name
如下代码可使工作簿打开后30秒(或闲置30秒)内不输入、不重新选择等,自动关闭工作簿
Private Sub Workbook_Open()
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) '工作表选择变化事件
End Sub
Sub tt()
Cl:
End Sub
range("e4").addcomment.Text "代头" & Chr(10) & "内容……"
range("e4").Comment.Visible = True
把工作簿中所有工作表的指定列调整为最佳列宽:
Sub 调整列宽()
End Sub
Do循环语句的几种形式:
1.
Do While i>1
... ...
Loop
2.
Do Until i>1
... ...
Loop
3.
Do
... ...
Loop While i>1
4.
Do
... ...
Loop Until i>1
5.While...Wend 语句
While i>1
... ...
Wend
勾选"VBA项目的信任"
Application.SendKeys "%(tmstv){ENTER}"
Application.SendKeys "%(qtmstv){ENTER}"
Application.CommandBars("命令按钮名称").Position = msoBarFloating
ActiveSheet.protect Password:="wshzw"
ActiveSheet.Unprotect Password:="wshzw"
Activesheet.ProtectContents
工作表的复制与命名
Sub wshzw()
End Sub
Application.EnableEvents = False
Application.EnableEvents = True
Application.EnableEvents = False
ActiveWorkbook.Save
'抑制BeforeSave事件的发生
Application.EnableEvents = True
'抑制指定事件
ActiveWorkbook.Save
Application.EnableEvents = True
Application.DisplayAlerts=False
'屏蔽确认提示
Application.ScreenUpdating = False
.......
Application.ScreenUpdating = true
' 冻结屏幕以加快程序运行
ActiveCell.CurrentRegion.Select
'选择与活动单元格相连的区域
Application.ScreenUpdating = true
ActiveCell.CurrentRegion.Select
range("a2:a20").NumberFormatLocal = "00-00"
'区域的格式化
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
'已用区域的最末行
ActiveSheet.Copy Before:=Sheets(1)
'复制活动工作表到第一张工作表之前
range("a2:a20").FormulaHidden = True
'工作表处于保护状态时隐藏部分单元格公式
FileDateTime("E:/My Documents/33.xls")
或
FileDateTime(thisworkbook.FullName)
FileLen(thisworkbook.FullName) / 1024
或
FileLen("E:/My Documents/temp/33.xls") / 1024
'文件的长度(大小),单位是 KB
Application.AskToUpdateLinks = False
'不询问是否更新链接,并自动更新链接
ActiveSheet.Hyperlinks.Delete
'删除活动工作表超链接
ActiveWorkbook.SaveLinkValues = False
'不保存活动工作簿的外部链接值
ActiveSheet.PageSetup.CenterFooter = Range("k2").Value
'打印时设置自定义页脚
ActiveSheet.PageSetup.Orientation = xlLandscape
'设置为横向打印
ActiveSheet.PageSetup.Orientation = xlPortrait
'设置为纵向打印
Application.WindowState = xlMinimized
'最小化窗口
Application.WindowState = xlNormal
'最大化窗口
Sub 删除工作表()
Application.DisplayAlerts = False
Sheet1.Delete
Application.DisplayAlerts = True
End Sub
有删除就有添加
Sub 添加工作表()
For i = 1 To 5
Worksheets.Add.Name = i
Next
End Sub
[A1:A20].AdvancedFilter xlFilterCopy, [B1], Unique:=True
'可去掉重复数据
[A2:C32].Replace What:="F", Replacement:="G"
'指定范围内的查找与替换
Activesheet.AutoFilterMode = false
'取消自动筛选
执行以下语句可有效缩小工作簿的大小,执行前请先看清每条语句的作用:
或
FileLen("E:/My Documents/temp/33.xls") / 1024
Application.AskToUpdateLinks = False
ActiveSheet.Hyperlinks.Delete
ActiveWorkbook.SaveLinkValues = False
ActiveSheet.PageSetup.CenterFooter = Range("k2").Value
ActiveSheet.PageSetup.Orientation = xlLandscape
ActiveSheet.PageSetup.Orientation = xlPortrait
Application.WindowState = xlMinimized
Sub 删除工作表()
End Sub
有删除就有添加
Sub 添加工作表()
End Sub
[A1:A20].AdvancedFilter xlFilterCopy, [B1], Unique:=True
[A2:C32].Replace What:="F", Replacement:="G"
Activesheet.AutoFilterMode = false
执行以下语句可有效缩小工作簿的大小,执行前请先看清每条语句的作用:
ActiveSheet.UsedRange.ClearComments
'清除活动工作表已使用范围所有批注
ActiveSheet.UsedRange.ClearFormats
'清除活动工作表已使用范围所有格式
ActiveSheet.UsedRange.Validation.Delete
'取消活动工作表已使用范围的数据有效性
ActiveSheet.Hyperlinks.Delete
'删除活动工作表超链接
ActiveSheet.DrawingObjects.Delete
'删除活动工作表已使用范围的所有对象
ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value
'取消活动工作表已使用范围的公式并保留值
还有:
Sub x()
Dim myRange As String
myRange = ActiveSheet.UsedRange.Address
'去除活动工作表无数据的行列
End Sub
ActiveSheet.UsedRange.ClearFormats
ActiveSheet.UsedRange.Validation.Delete
ActiveSheet.Hyperlinks.Delete
ActiveSheet.DrawingObjects.Delete
ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value
还有:
Sub x()
End Sub