【Excel】【FAQ】编号11-20

Q11:如何高亮选中单元格/区域?

A11如下示例高亮所选中所选单元格/区域,在工作表对象的SelectionChange事件触发的回调函数中添加如下代码。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("IV65536").Value = 1 Then '单元格“IV65536” 的值作为功能开关
        Cells.Interior.ColorIndex = xlNone
        Target.Interior.ColorIndex = 6 '高亮当前区域
    End If
End Sub

说明:ColorIndex属性的取值为在调色板中的颜色编号。下图为默认调色板中的颜色编号值。在Excel帮助中搜索“ColorIndex”。

 

Q12:【代码调试】打开VBE编辑器有哪几种方法?

A12:以Excel2007为例,有如下几种。

一、快捷键<Alt+F11>

二、 菜单“开发工具”->“查看代码”;

三、 工作表名称栏右键->“查看代码”。

 

Q13:【代码调试】Debug对象的常用使用方法有哪些?

A13Debug对象只有如下两种方法:

一、Debug.Print方法,其打印结果在立即窗口显示。

Sub DebugPrintTest()
    Dim bBool As Boolean
    Dim dData As Date
    Dim x As Variant
    bBool = True
    dData = Now
    Debug.Print bBool  '打印“True”
    Debug.Print         '打印空行
    Debug.Print dData  '打印“2012/8/27 0:29:14 ”
    x = Empty
    Debug.Print x       '打印空行
    x = Null
    Debug.Print x       '打印“Null”
End Sub

二、 Debug.Assert方法,当表达式为真时继续往下执行,当表达式为假时中断程序执行并进入中断模式。

Function DebugAssertTest(iX As Integer, iY As Integer) As Double
    Debug.Assert iY <> 0
    If iY <> 0 Then
        DebugAssertTest = iX / iY
    End If
End Function

Sub test1()
    MsgBox DebugAssertTest(10, 2)
    MsgBox DebugAssertTest(10, 0)
End Sub

 

Q14:【代码调试】中断程序有哪几种方法?

A14:有如下三种方法。

一、设置断点,设置/取消断点的快捷键为<F9>

二、使用Debug.Assert,使用方法参考Q13的描述;

三、使用监视条件。操作方法:点击“视图”->“监视窗口”打开监视窗口,在监视窗口空白处点击右键->“添加监视”,在弹出的“添加监视”窗口中输入表达式,选择好“上下文”与“监视类型”,点击“确定”。

 

Q15:【代码调试】VBE中的立即窗口如何使用?

A15使用方法:

一、在代码中使用Debug.Print可以将打印结果输出到立即窗口;

二、 在立即窗口中输入表达式,会立即计算并打印表达式的值。

Debug.Print 1+2
 3 

?1+2
 3

?1=2
False

 

Q16:【对象方法】Range对象的AdvancedFilter方法如何使用?

A16Range对象的AdvancedFilter方法对应高级筛选功能(鼠标点击菜单“数据”->“排序和筛选”->“高级”),如下图所示。


对应的VBA代码如下所示。

Sub Macro1()
    Sheets("Database").Range("A1:F10").AdvancedFilter _
        Action:=xlFilterCopy, _
        CriteriaRange:=Range("B2:C3"), _
        CopyToRange:=Range("B5"), _
        Unique:=False
End Sub

Range对象的AdvancedFilter方法的参数含义如下。

名称

必选/可选

数据类型

描述

Action

必选

XlFilterAction

XlFilterAction 的常量之一,用于指定是否就地复制或筛选列表。XlFilterAction 枚举有如下两个取值:xlFilterInPlace表示保留数据不动;xlFilterCopy表示将筛选出的数据复制到新位置。

CriteriaRange

可选

Variant

条件区域。如果省略该参数,则没有条件限制。

CopyToRange

可选

Variant

如果 Action 为 xlFilterCopy,则为复制行的目标区域。否则,忽略该参数。

Unique

可选

Variant

如果为 True,则只筛选唯一记录。如果为 False,则筛选符合条件的所有记录。默认值为  False。

 

Q17C语言中的swich…case语句所对应的VB语句如何书写?

A17:参考如下示例,其中Single表示单精度浮点型变量类型。 

Function GetExtra(num As Single) As Single
    Select Case num
        Case 1, 2
            GetExtra = 1
        Case 3 To 5
            GetExtra = 1.05
        Case Is > 5
            GetExtra = 1.1
        Case Else
            GetExtra = 0
    End Select
End Function

 

Q18Sub过程和Function过程有什么区别?两者在使用时有什么注意事项?

A18:区别在于:Sub过程不能携带返回值,Function过程能够携带返回值。注意事项:在使用Call语句调用Sub过程或者Function过程时,如果过程有参数,则必须在被调用过程的参数周围加上括号;在直接调用Sub过程或者Function过程时,如果过程有参数,则不应该在被调用过程的参数周围加上括号。特别对于Function过程,如果要使用该过程的返回值,则应该在参数的周围加上括号;如果不需要使用带参数过程的返回值,则不需要在参数的周围加上括号。

 

Q19:执行宏(调用过程)有哪几种方式?

A19:有如下几种方式。

方式一:利用普通按钮(窗体控件或表单控件)调用过程;

方式二:利用命令按钮(ActiveX控件)调用过程,此种方式可在“设计模式”下双击命令按钮直接进入查看/编辑代码;

方式三:在自定义快速访问工具栏中调用过程,如下图所示;


方式四:在一个过程中调用另一个过程;

方式五:在Excel事件中调用过程,示例如下。

Private Sub Workbook_Open()
    Call GetDatas
End Sub

 

Q20

A20

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值