云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > VBA常用技巧(一)

VBA常用技巧(一)

  • 62 次阅读
  • 3 次下载
  • 2025/6/22 12:44:41

#012 Private Sub Worksheet_Change(ByVal Target As Range)

#013 If Target.Column = 1 And Target.Row > 1 And Target.Count = 1 Then #014 With Target.Offset(0, 1).Validation #015 .Delete

#016 Select Case Target #017 Case \主机\

#018 .Add Type:=xlValidateList, _ #019 AlertStyle:=xlValidAlertStop, _ #020 Operator:=xlBetween, _

#021 Formula1:=\#022 Case \显示器\

#023 .Add Type:=xlValidateList, _ #024 AlertStyle:=xlValidAlertStop, _ #025 Operator:=xlBetween, _

#026 Formula1:=\三星17,飞利浦15,三星15,飞利浦17\#027 End Select #028 End With #029 End If #030 End Sub

代码解析:

第1行到第11行代码,工作表的SelectionChange事件,当选择工作表的A列单元格时,在A2以下的单元格中建立动态的数据有效性。

其中第2行代码,利用SelectionChange事件的Target参数来限制事件的触发条件。 第3行到第9行代码使用Add方法在A列单元格中建立数据有效性。应用于Validation对象的Add方法请参阅技巧1。

第12行到第30行代码,工作表的Change事件,当工作表A列单元格内容改变时,在B列单元格中建立动态的数据有效性。

其中第16行到第27行代码,根据A列单元格的内容在B列对应的单元格中建立数据有效性,其Formula1参数的值根据A列单元格的内容而变化,使之达到动态数据有效性的效果,如图 x-1、图 x-2所示。

图 x-1

动态数据有效性1

图 x-2

动态数据有效性2

4. 自动展开数据有效性下拉列表

选择工作表单元格时自动展开数据有效性的下拉列表,如下面的代码所示。

#001 Private Sub Worksheet_SelectionChange(ByVal Target As Range) #002 If Target.Column = 5 Then Application.SendKeys \#003 End Sub

代码解析:

当选择工作表的E列中有数据有效性的单元格时使用SendKeys方法发送Alt+向下键,打开数据有效性的下拉列表。

应用于Application对象的SendKeys方法将击键发送给活动应用程序,语法如下:

expression.SendKeys(Keys, Wait)

参数expression是可选的,该表达式返回一个Application对象。 参数Keys是必需的,要发送的键或者组合键,以文本方式表示。

Keys参数可以指定任何单个键或与Alt、Ctrl 或Shift的组合键(或者这些键的组合)。每个键可用一个或多个字符表示。例如,\ 表示字符 a,或者 \ 表示 Enter。

若要指定在按相应键时不会显示的字符(例如,Enter 或 Tab),请使用如表格 x-2所列的代码来表示相应的键,表中的每个代码表示键盘上的一个键。

键 Backspace Break 代码 {BACKSPACE} 或 {BS} {BREAK} Caps Lock Clear Delete 或 Del End Enter Enter(数字小键盘) Esc F1 到 F15 Help Home Ins Num Lock Page Down Page Up Return Scroll Lock Tab 向上键 向下键 向右键 向左键 {CAPSLOCK} {CLEAR} {DELETE} 或 {DEL} {END} ~(波形符) {ENTER} {ESCAPE} 或 {ESC} {F1} 到 {F15} {HELP} {HOME} {INSERT} {NUMLOCK} {PGDN} {PGUP} {RETURN} {SCROLLLOCK} {TAB} {UP} {DOWN} {RIGHT} {LEFT} 表格 x-2 按键代码

xi. 单元格中的公式

1. 在单元格中写入公式

使用Range对象的Formula属性可以在单元格区域中写入公式,如下面的代码所示。

#001 Sub rngFormula()

#002 Sheet1.Range(\

#003 End Sub

代码解析:

应用于Range对象的Formula属性返回或设置A1样式表示的Range对象的公式,语法如下:

expression.Formula

参数expression是必需的,返回一个Range对象。

还可以使用FormulaR1C1属性返回或设置以R1C1-样式符号表示的公式,如下面的代码所示。

#001 Sub rngFormulaRC()

#002 Sheet2.Range(\#003 End Sub

如果需要在单元格中写入数组公式则使用Range对象的FormulaArray属性。如下面的代码所示。

#001 Sub RngFormulaArray()

#002 Sheet3.Range(\#003 End Sub

Range对象的FormulaArray属性返回或设置单元格区域的数组公式。

2. 检查单元格是否含有公式

使用单元格的HasFormula属性检查单元格是否含有公式,如下面的代码所示。

#001 Private Sub CommandButton1_Click() #002 Select Case Selection.HasFormula #003 Case True

#004 MsgBox \公式单元格!\#005 Case False

#006 MsgBox \非公式单元格!\#007 Case Else

#008 MsgBox \公式区域:\& Selection.SpecialCells(xlCellTypeFormulas, 23).Address(0, 0)

#009 End Select #010 End Sub

代码解析:

搜索更多关于: VBA常用技巧(一) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

#012 Private Sub Worksheet_Change(ByVal Target As Range) #013 If Target.Column = 1 And Target.Row > 1 And Target.Count = 1 Then #014 With Target.Offset(0, 1).Validation #015 .Delete #016 Select Case Target #017 Case \主机\#018 .Add Type:=xlValidateList, _ #019 AlertStyle:=x

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com