精华内容
下载资源
问答
  • VBAActivate方法和Select方法的区别

    千次阅读 2017-07-06 16:12:15
    VBA中的Activate方法和Select方法看起来似乎相同,其实二者是有区别的。Activate方法的作用是激活,而Select方法的作用是选择。其区别如下:  1.对于“Sheets”对象  Sheets.Select可以同时选择多个工作表,而...

      VBA中的Activate方法和Select方法看起来似乎相同,其实二者是有区别的。Activate方法的作用是激活,而Select方法的作用是选择。其区别如下:

        1.对于“Sheets”对象

        Sheets.Select可以同时选择多个工作表,而Sheets.Active不能同时激活多个工作表。如下面的语句:

        Sub Test1()
           ActiveWorkbook.Sheets(Array(1, 2, 3)).Select '可以同时选择3个工作表
        End Sub
        Sub Test2()
           ActiveWorkbook.Sheets(Array(1, 2, 3)).Activate  '不能同时激活3个工作表,出现错误
        End Sub

        另外,对于隐藏的工作表,Sheets.Select方法不能选择隐藏的工作表,而Sheets.Activate方法可以激活隐藏的工作表。如下面的代码:

        Sub Test3()
           ActiveWorkbook.Sheets(2).Visible = False '隐藏工作表
           ActiveWorkbook.Sheets(2).Select          '无法选择隐藏的工作表,产生错误
        End Sub
        Sub Test4()
           ActiveWorkbook.Sheets(2).Visible = False  '隐藏工作表
           ActiveWorkbook.Sheets(2).Activate         '可以激活隐藏的工作表
        End Sub

        2.对于“Range”对象

        首先说明一下活动单元格和选定区域:

        某个选定的区域中只能有一个活动单元格,通常活动单元格位于所选区域的左上角。如下图我们选择了A1:G10区域,A1单元格是高亮显示的,A1单元格就是活动单元格。当我们用键盘进行输入的时候,键入的内容将被输入到活动单元格中。


    如果我们要让区域中的其他单元格变成活动单元格,可以按Tab键,将使区域中当前活动单元格右方的单元格变为活动单元格,而按Shift+Tab则方向相反;或按Enter键,将使区域中当前活动单元格下方的单元格变为活动单元格,而按Shift+Enter则方向相反。

      “Range”对象的的Select方法可以选择一个或多个单元格,而Activate方法可以指定某一个单元格为活动单元格。 如果我们用下面的代码试图激活某个区域:

        Range("d4:e5").Activate

        Excel将仅仅激活D4单元格,但同时选择了D4:E5区域。下面的代码首先选择A1:E10区域,同时激活D4单元格:

        Sub test()
           Range("a1:e10").Select
           Range("d4:e5").Activate
        End Sub

        而对于下面的代码:

        Sub test()
           Range("a1:e10").Select
           Range("f11:g15").Activate
        End Sub

        由于区域A1:E10和F11:G15没有公共区域,将最终选择F11:G15,并激活F11单元格。

        由上可见,当我们要选择某个区域时最好用Select方法,而不用Activate方法,否则可能会出现意想不到的错误。

     

    • 0ac84173-2767-3ec1-b8fc-c8132282edc7-thumb.jpg
    • 大小: 17.7 KB
    展开全文
  • Layer.Activate 属性用来激活图层,使其成为激活层,调用 ActiveLayer 将返回该激活层。 VBA参考代码 下面的VBA代码,将当前活动页面中图层名称为 Layer 1 的图层激活。 ActivePage.Layers("Layer 1")....

    Layer.Activate 属性用来激活图层,使其成为激活层,调用 ActiveLayer 将返回该激活层。

    VBA参考代码

    下面的VBA代码,将当前活动页面中图层名称为 Layer 1 的图层激活。

    ActivePage.Layers("Layer 1").Activate
    

    原创声明:本文首发于 《CorelDRAW VBA探秘》 独立站点,请尊重文章版权。
    转载请注明原文链接:http://www.cdrvba.com/coreldraw-vba-layer-activate


    CorelDRAW VBA - CSDN文章专栏https://blog.csdn.net/column/details/27356.html

    展开全文
  • 大家好,我们今日继续讲解VBA代码解决方案的第89讲内容:VBA代码的优化篇,少用激活Activate语句或Select选择语句,可以提高程序的运行速度。在VBA代码的编写过程中我们经常会使用大量的Select和Activate语句,这些...

    251a9968ca46b606d673b560695a2fda.png

    大家好,我们今日继续讲解VBA代码解决方案的第89讲内容:VBA代码的优化篇,少用激活Activate语句或Select选择语句,可以提高程序的运行速度。

    在VBA代码的编写过程中我们经常会使用大量的Select和Activate语句,这些语句的使用往往会增加代码运行过程中的可视效果,但往往会牺牲代码的运行速度。所以可以通过减少这些语句的使用以加快运行速度,

    首先我们先研究一下这两个方法,Select和Activate都是作用于对象,但是也有所分别,对于工作表对象,select方法是后台操作,可以选择多个工作表,而activate则无法选择多个工作表激活,所以会报错。select方法无法选择隐藏的工作表,例如我将sheet1工作表隐藏后选择它。 ActiveWorkbook.Sheets("sheet1").Select。而使用activate方法则可以激活隐藏的工作表,不会报错。针对工作表而言,两个方法也有不同的地方。首先select选择范围后,会默认激活区域中最左上角的单元格。使用select选择了区域范围会有对应的范围提示框,其左上角单元格高亮无阴影显示。也就是说select无法指定激活的单元格,而activate则可以,不过需要搭配着select使用,必须先使用select指定范围,然后使用activate指定单元格。分析了上述的选择不同后,我们接着看下面的代码:

    Sub MySta()

    Dim i As Integer

    Dim t As Date

    Dim t1 As String

    Dim t2 As String

    t = Timer

    For i = 1 To 3000

    Sheets("Sheet10").Select

    Sheets("Sheet10").Cells(i, 1).Select

    ActiveCell.FormulaR1C1 = "10"

    Next

    t1 = Timer - t

    t = Timer

    For i = 1 To 3000

    Sheets("Sheet10").Cells(i, 5) = "10"

    Next

    t2 = Timer - t

    Sheets("Sheet10").Cells(3, 2).Select

    Sheets("Sheet10").Cells(3, 2) = Format(t1, "0.00000")

    Sheets("Sheet10").Cells(4, 2) = Format(t2, "0.00000")

    MsgBox "第一次运行时间:" & Format(t1, "0.00000") & "秒" _

    & Chr(13) & "第二次运行时间:" & Format(t2, "0.00000") & "秒"

    End Sub

    代码解析:

    Sta过程分别使用录制宏所得的代码和修改后的代码给单元格填充,最后使用消息显示运行时间。

    第8行代码到第10行代码有两次使用Select方法,第15行代码是修改后的代码,在代码量不大的情况下运行速度区别不大,但是在循环5000次后运行速度就会差别很大。

    运行Sta过程,消息框显示两种方法的运行时间,可以看出后一种方法的运行时间要远远小于前者代码的运行时间.

    代码窗口:

    c530d8fd957058f453db73cbff37a1eb.png

    运行截图:

    8218d440924678bd2f356e9e05e3eb57.png

    从上述代码运行结果看出:节约的时间是很可观的

    今日内容回向:

    1 本节优化代码的措施是什么?

    2 你是否认同上面的优化措施呢?其实我在写代码的时候往往是采用的第一种方案。不做优化。

    作者自媒体平台:微信号“NZ9668”、头条号“VBA专家”、百家号“VBA与GO语言”、微信公众号“NZ_9668”、社群“VBA学习交流群”。

    这一系列文章是根据作者多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系,及时为你提供专业的定制技术支持。

    工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道,工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。

    展开全文
  • VBA

    2011-05-31 23:58:00
    Rows(1).Insert '在第1行前插入1行 ...Private Sub Worksheet_Activate() myrow = ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count Dim idx As Integer Dim j As Integer idx = 4 For j = 3 To myrow ...

    Rows(1).Insert '在第1行前插入1行

    Private Sub Worksheet_Activate()
        myrow = ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count
        Dim idx As Integer
        Dim j As Integer
        idx = 4
        For j = 3 To myrow
            Debug.Print Worksheets("sheet2").Cells(j, 1).Value
            idx = processValue(idx, Worksheets("sheet2").Cells(j, 1))
        Next j
    End Sub

    Function processValue(idx As Integer, val As Range)
        Dim i As Integer
        Dim b As Boolean
        For i = 1 To idx
            b = Worksheets("sheet1").Cells(i, 1).Value = val.Value
            If b Then
                Worksheets("sheet1").Cells(i, 2).Value = Worksheets("sheet1").Cells(i, 2).Value + 1
                Exit For
            End If
        Next i
        If b Then
            processValue = idx
        Else
            Worksheets("sheet1").Cells(idx, 1).Value = val.Value
            Worksheets("sheet1").Cells(idx, 2).Value = 1
            processValue = idx + 1
        End If
    End Function

    Private Sub Worksheet_Activate()
        Application.ScreenUpdating = False
        Dim buffer As New Collection
        Dim index As Long
        Dim first As Long
        Dim last As Long
        Dim counter As Long
        Dim current As Range
        Dim ws As Worksheet
       
        first = 4
        Set ws = Application.Worksheets("基础数据表")
        last = ws.UsedRange.Rows.Count
           
        For counter = first To last
            Set current = ws.Range("D" & counter)
            Call analyze(buffer, current, counter)
        Next counter
        Application.ScreenUpdating = True
    End Sub
    Function analyze(ByRef buffer As Collection, ByRef cluster As Range, rownum As Long)
        Dim exist As Boolean
        Dim rowset As Collection
       
        exist = False
       
        If Not (IsError(cluster.value) Or IsEmpty(cluster.value) Or cluster.value = "") Then
        On Error GoTo nextStep
            Set rowset = buffer.Item(CStr(cluster.value))
            exist = True
    nextStep:
        If Not exist Then
            Set rowset = New Collection
            buffer.Add rowset, CStr(cluster.value)
        End If
        rowset.Add rownum
    End If
    End Function

    展开全文
  • VBA程序

    2019-03-09 15:01:58
    在Excel中利用VBA处理站点数据,经过很多时间终于成功。记录实验结果如下: Sub we() i = 6 For j = 1 To 30 Windows("chengle.dbf").Activate Rows("1:1").Select Selection.AutoFilter ...
  • VBA学习笔记三VBA事件执行宏的方法工作表事件事件操作示例根据表格中的内容自动筛选数据参考 VBA事件 执行宏的方法 ...Activate 激活工作表时 Deactivete 工作表从活动状态转化为非活动状态时 BeforeDo
  • VBA类模块

    千次阅读 2019-03-14 16:25:34
    众所周知,ActivateX中有许多已经存在的对象,如AcadText,AcadLine。这些对象有自己对应的方法,用来修改编辑对象的属性参数等。这些对象的功能都是基本的实现方法。例如,画一条线,用AddLine方法,输入起点终点...
  • vba常用英文

    2014-10-26 17:02:30
    (11) Workbooks(“book1.xls”).Activate '激活名为book1的工作簿 (12) ThisWorkbook.Save '保存工作簿 (13) ThisWorkbook.close '关闭当前工作簿 (14) ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数
  • VBA简单基础

    2017-11-28 14:16:29
    VBA基本概念 1 Dim I as integer Dim:定义 I:变量 Integer:变量类型 基本形式:dim 变量 as 变量类型 赋值:变量 = value 2 进入某一个excel:Windows(“excel全名(包括后缀)”).Activate 3 进入某一个...
  • 不知道有多少人会对VBA的这个功能...演示如下:设计的要点如下:1、设计表单2、启动表单 userform.show3、UserForm_Activate()事件感兴趣的可以来交流!相关阅读:两句代码快速提高VBA运行效率Excel VBA 实例(22) ...
  • VBA常用技巧

    2012-10-15 13:48:05
    VBA常用技巧 1 第1章 Range(单元格)对象 10 技巧1 单元格的引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 12 1-6 使用Union方法 12 1-7 ...
  • excel vba实例

    2008-12-29 09:15:21
    excel vba 实例 ActiveWorkbook.Worksheets("使用记录").Activate ActiveSheet.Range("a1").Activate Selection.End(xlDown).Select Selection.End(xlToLeft).Select ActiveCell.Offset(1, 0).Range("A1") = ...
  • VBA入门的基础语句

    万次阅读 多人点赞 2017-06-02 18:12:53
    VBA入门的基础语句  选择当前活动的工作簿:  ThisWorkbook.Activate  如果选择其他工作簿,注意该工作簿一定是打开的,并且不要忘记加上后缀“.xls” ,例如:  Windows("Totol.xls")....
  • 一、VBA入门知识 1、激活工作簿 2、创建新工作簿 3、打开工作簿 4、用编号引用工作表 5、用名称引用工作表 6、将文档保存为 Web 页 7、用 A1 样式的记号引用单元格和单元格区域 8、用编号引用单元格 9、引用行或列 ...
  • 4、Activate 方法的语法 5、Set 语句 3 6、MsgBox 函数的语法 7、选项语句的语法 8、AddressOf 运算符 9、了解变体 10、写赋值语句 11、写可执行的语句 12、Public 语句 13、Private 语句 14、使用数组 15、使用常数...
  • VBA编码几个注意点

    2017-04-26 21:24:59
    .SetSourceData 之后申明小数点类型为variant为了让宏执行时不白屏,在语句前后添加 Application.screenUpdating=False/True“参数不可选",给调用的函数少输入了实参.Select要求sheet首先被Activate隐藏行列时for...
  • VBA便利程序

    2018-02-22 17:12:07
    /* 全部Sheet的A1選択 */Sub A1選択() Dim s As Object Dim defaultSheet As Object Set defaultSheet = ActiveSheet For Each s In ActiveWorkbook.Sheets s.Activate ActiveSheet.Range("A1")....
  • VBA编程之操作单元格

    2020-07-27 09:49:51
    VBA编程经常要读取、写入单元格内容,所以总结这么一篇笔记,我只是把最常用到的功能列举出来。... Activate 保存某个工作簿:Workbooks(“Book1”).Save,同理有ActiveWorkbook.Save和ThisWorkbook.Save。 注意工作簿
  • EXCEL的VBA

    2018-04-02 13:36:06
    选择“查看代码”,就可以打开VBA编辑界面。选择如下图所示的下拉菜单,选择“worksheet”。选择如下图所示的下拉菜单,选择对应的触发模式。这里我们选择BeforeDoubleClick,意思就是说:在本工作表鼠标双击(之前...
  • VBA 操作excel菜单

    千次阅读 2013-06-16 10:40:37
    VBA 操作excel菜单   在thisworkbook中加入: Option Explicit Private Sub Workbook_Activate()  Call myTools End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)  'Call DelmyTools ...
  • vba备份代码

    2013-07-09 16:20:04
    ThisWorkbook.Sheets(1).Activate Dim MaxRow1, MaxRow2 As Long MaxRow1 = Sheets(1).Cells(1048576, 3).End(xlUp).Row Dim i, j As Integer For i = 2 To MaxRow1 MaxRow2 = Sheets(2).Cells(1048576, 2)....
  • VBA 常用 技巧 VB

    2011-03-12 10:05:28
    VBA常用技巧 1 第1章 Range(单元格)对象 10 技巧1 单元格的引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 13 1-6 使用Union方法 14 1-7 ...
  • VBA 常用技巧 VB

    2011-03-12 10:04:06
    VBA常用技巧 1 第1章 Range(单元格)对象 10 技巧1 单元格的引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 13 1-6 使用Union方法 14 1-7 ...
  • VBA-选择工作表的方法

    千次阅读 2020-02-24 15:34:49
    VBA 中需要激活或者选择某个工作表时使用 Select 方法或 Activate 方法: Sub test1() Sheet1.Activate End Sub Sub test2() Sheet2.Select End Sub 虽然两个方法都可以选中工作表,但是具有如下的区别: ...
  • VBA 一些用法

    2015-05-12 14:24:00
    Sheets(1).Activate ActiveWorkbook.SaveAs Filename:="E:\etl_folder\", FileFormat:=xlTextMSDOS 选择Personal Macro WorkBook 可以应用于所有excel 转载于:...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 176
精华内容 70
关键字:

activatevba