……我的地盘里有乱七八糟的东西,有偷来的,有捡来的,有自造的,不代表我的水平,觉得有用就拿去用。我是教师,如果你是同行,咱们多联系……
常用的、带解释的 VBA 短句
上一篇 / 下一篇 2006-08-28 14:05:23 / 天气: 晴朗 / 心情: 高兴 / 个人分类:……办公杂耍……
[VBA起步]常用的、带解释的 VBA 短句爱好者博墅)~*Dhv
~]:Vs
[A65536].End(xlUp).Row 'A列末行向上第一个有值的行数
;?f H,oo0W'K1m2mwD0[A1].End(xlDown).Row 'A列首行向下第一个有值之行数爱好者博墅6x"y@4np Y h1F
[IV1].End(xlToLeft).Column '第一行末列向左第一列有数值之列数。
Rx_7\ F#IT`P%{0[A1].End(xlToRight).Column '第一行首列向右有连续值的末列之列数爱好者博墅Sk1?(z{ Cnk
Application.CommandBars("Standard").Controls(2).BeginGroup=True '在常用工具栏的第二个按钮前插入分隔符爱好者博墅bml W]
Cells.WrapText = False '取消自动换行
jN)[]Uk!o0 If Len(Target) > 5 Then '如果当前单元格中的字符数超过5个,执行下一行
'M"y9Xp(M0 Target.WrapText = True '自动换行爱好者博墅?*T iI&B'S_ BR(Q
End If
[A65536].End(xlUp).Row 'A列末行向上第一个有值的行数
;?f H,oo0W'K1m2mwD0[A1].End(xlDown).Row 'A列首行向下第一个有值之行数爱好者博墅6x"y@4np Y h1F
[IV1].End(xlToLeft).Column '第一行末列向左第一列有数值之列数。
Rx_7\ F#IT`P%{0[A1].End(xlToRight).Column '第一行首列向右有连续值的末列之列数爱好者博墅Sk1?(z{ Cnk
Application.CommandBars("Standard").Controls(2).BeginGroup=True '在常用工具栏的第二个按钮前插入分隔符爱好者博墅bml W]
Cells.WrapText = False '取消自动换行
jN)[]Uk!o0 If Len(Target) > 5 Then '如果当前单元格中的字符数超过5个,执行下一行
'M"y9Xp(M0 Target.WrapText = True '自动换行爱好者博墅?*T iI&B'S_ BR(Q
End If
[A1:B10].SpecialCells(xlCellTypeBlanks).Rows.Hidden = True '有空格即隐藏行爱好者博墅Kh-t.O,?f
[A2].parent.name '返回活动单元格的工作表名
d$C tQd+g"fD0[A2].parent.parent.name '返回活动单元格的工作簿名
[aV.^Lx,f&\X0如下代码可使工作簿打开后30秒(或闲置30秒)内不输入、不重新选择等,自动关闭工作簿
9Q!y2qaXO*C0Private Sub Workbook_Open() '工作簿打开事件
"v7nl*F1`6av-m*t;f ?0 tt '工作簿打开时启动 tt 过程
6a-Gl"s.Fr0End Sub爱好者博墅uhb] m"u [Z
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) '工作表变化事件
Jx7g-cpB1Jb0 tt '工作表中任一单元格有变化时启动 tt 过程
5L:q KJ.g8H5Cz9O~0End Sub爱好者博墅S7I)^ P0XE!x L
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) '工作表选择变化事件爱好者博墅K%t#d;r)a:B
tt '工作表中单元格的选择有变化时启动 tt 过程
:^zZ8I1I)H d0End Sub
8oI @1_Y/e u0Sub tt() 'tt 过程
3s)e A:LiQ0 Dim myNow As Date, BL As Integer '定义myNow为日期型;定义BL为长整型爱好者博墅u{:~s8g8_
myNow = Now '把当前的时间赋给变量myNow
lK(W#b&lM0 Do '开始循环语句Do
5?ZELz `0 BL = Second(Now) - Second(myNow) '循环中不断检查变量BL的值
A|ln_l0 If BL = 30 Then GoTo Cl '当BL=30即跳转到CL爱好者博墅-k3V X^ G,`^)Y
DoEvents '转让控制权,以便sheets可继续操作爱好者博墅N o&szyltlvG
Loop Until BL > 30 '当BL>30即跳出循环爱好者博墅Z?T9Vw-T U*c6P
Exit Sub
kiP-P Ot2H0Cl:
D&~ Af1E@Y"L0 Application.EnableEvents = False '避免引起其他事件
J7z0^|V-a4Wp7mS0 ActiveWorkbook.Close True '关闭活动工作簿并保存
"l:~2~i-P"V0 Application.EnableEvents = True '可触发其他事件
9z"fPVP)Fp"j'|u1H0End Sub爱好者博墅2x-y$Ae*?Q~E9X
range("e4").addcomment.Text "代头" & Chr(10) & "内容……" '添加批注
1] |)E3@A0range("e4").Comment.Visible = True '显示批注爱好者博墅,O4c]I6D+@USdI
把工作簿中所有工作表的指定列调整为最佳列宽:爱好者博墅+nr!K4| F'{T
Sub 调整列宽()
5^Q5k Nvu-Ke4[0 Dim i%
'W\.~\)K&N4Xe0 For i = 1 To Sheets.Count '遍历工作簿中所有的工作表
T|W&E
[A2].parent.name '返回活动单元格的工作表名
d$C tQd+g"fD0[A2].parent.parent.name '返回活动单元格的工作簿名
[aV.^Lx,f&\X0如下代码可使工作簿打开后30秒(或闲置30秒)内不输入、不重新选择等,自动关闭工作簿
9Q!y2qaXO*C0Private Sub Workbook_Open() '工作簿打开事件
"v7nl*F1`6av-m*t;f ?0 tt '工作簿打开时启动 tt 过程
6a-Gl"s.Fr0End Sub爱好者博墅uhb] m"u [Z
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) '工作表变化事件
Jx7g-cpB1Jb0 tt '工作表中任一单元格有变化时启动 tt 过程
5L:q KJ.g8H5Cz9O~0End Sub爱好者博墅S7I)^ P0XE!x L
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) '工作表选择变化事件爱好者博墅K%t#d;r)a:B
tt '工作表中单元格的选择有变化时启动 tt 过程
:^zZ8I1I)H d0End Sub
8oI @1_Y/e u0Sub tt() 'tt 过程
3s)e A:LiQ0 Dim myNow As Date, BL As Integer '定义myNow为日期型;定义BL为长整型爱好者博墅u{:~s8g8_
myNow = Now '把当前的时间赋给变量myNow
lK(W#b&lM0 Do '开始循环语句Do
5?ZELz `0 BL = Second(Now) - Second(myNow) '循环中不断检查变量BL的值
A|ln_l0 If BL = 30 Then GoTo Cl '当BL=30即跳转到CL爱好者博墅-k3V X^ G,`^)Y
DoEvents '转让控制权,以便sheets可继续操作爱好者博墅N o&szyltlvG
Loop Until BL > 30 '当BL>30即跳出循环爱好者博墅Z?T9Vw-T U*c6P
Exit Sub
kiP-P Ot2H0Cl:
D&~ Af1E@Y"L0 Application.EnableEvents = False '避免引起其他事件
J7z0^|V-a4Wp7mS0 ActiveWorkbook.Close True '关闭活动工作簿并保存
"l:~2~i-P"V0 Application.EnableEvents = True '可触发其他事件
9z"fPVP)Fp"j'|u1H0End Sub爱好者博墅2x-y$Ae*?Q~E9X
range("e4").addcomment.Text "代头" & Chr(10) & "内容……" '添加批注
1] |)E3@A0range("e4").Comment.Visible = True '显示批注爱好者博墅,O4c]I6D+@USdI
把工作簿中所有工作表的指定列调整为最佳列宽:爱好者博墅+nr!K4| F'{T
Sub 调整列宽()
5^Q5k Nvu-Ke4[0 Dim i%
'W\.~\)K&N4Xe0 For i = 1 To Sheets.Count '遍历工作簿中所有的工作表
T|W&E