[VBA起步]1

来源:互联网 发布:吉利知豆d1功能 编辑:程序博客网 时间:2024/05/16 12:26

[VBA起步]常用的、带解释的 VBA 短句——接龙
常见函数版有函数接龙,对于VBA的初学者来说,很想了解一些VBA短句的含义。
我先抛砖引玉,希望大家能贴出带释义的VBA常用句,以利于VBA初学者的交流学习……
[A65536].End(xlUp).Row                            'A列末行向上第一个有值的行数
[A1].End(xlDown).Row                               'A列首行向下第一个有值之行数
[IV1].End(xlToLeft).Column                        '第一行末列向左第一列有数值之列数。
[A1].End(xlToRight).Column                       '第一行首列向右有连续值的末列之列数

Application.CommandBars("Standard").Controls(2).BeginGroup=True '在常用工具栏的第二个按钮前插入分隔符

Cells.WrapText = False             '取消自动换行
    If Len(Target) > 5 Then           '如果当前单元格中的字符数超过5个,执行下一行
        Target.WrapText = True        '自动换行
    End If

[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 

根据一般常识,凡是进行监视的程序,都要耗用一定的资源,比如杀毒软件的实时监视等;
同样,5楼的“tt 过程”亦是一个对工作表进行监视的过程,只要启动这个过程,亦需耗用一定的资源,所以,没必要尽量少用;
5楼的代码例举了几个启动“tt过程”的事件,还可以用其他事件启动该过程,但并非要动用所有的事件,只要根据需要动用其中一二个事件来启动该过程,亦可以不用任何事件,直接在需要时启动该过程……
之所以罗嗦,因为已经有人执行上述代码时不够灵活,使用不理想时返回"质问",特此补充说明,抱歉!

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 窗口操作

原创粉丝点击