精华内容
下载资源
问答
  • Visual Basic For Application(VBA)教程
  • Application对象代表Excel程序本身,它就像一棵树的根,Excel中所有的对象都以它为起点。实际编程时,会经常用到它的许多属性和方法。 1.用ScreenUpdating属性设置是否更新屏幕上的内容 在使用Excel解决一个问题时...

    Application对象代表Excel程序本身,它就像一棵树的根,Excel中所有的对象都以它为起点。实际编程时,会经常用到它的许多属性和方法。

    1.用ScreenUpdating属性设置是否更新屏幕上的内容

    在使用Excel解决一个问题时,往往需要执行多步操作或计算。无论是通过手动还是VBA代码完成这些操作,默认情况下,Excel都会将每步操作所得的结果显示在屏幕上。

    Application对象的ScreenUpdating属性就是控制屏幕更新的开关,将该属性设置为False,Excel将会关闭屏幕更新。

    Application.ScreenUpdating=False   '关闭屏幕更新
    
    Application.ScreenUpdating=True  '重新开启屏幕更新

    如果在程序中将ScreenUpdating属性设置为False,一定要记得在程序结束前将其重新设置为True,否则后面执行的程序也不会更新屏幕上的内容。

    2.设置DisplayAlerts属性禁止显示警告对话框

    当我们在Excel中执行某些操作,如删除工作表时,Excel会显示一个警告对话框,让我们确定是否需要执行这个操作,如图1所示。

    图1 删除工作表时显示的警告对话框

    出于很多原因,我们都希望Excel在程序执行的过程中,不显示警告对话框,这可以通过设置Application对象的DisplayAlerts属性为False来实现。

    在下面示例代码中,如果不写第2行代码,那么在执行程序中,每删除一个工作表,就会弹出一次警告框,而且只有点击【删除】按钮才会执行删除操作。如果要删除100张工作表,就需要点击【删除】按钮100次。

    Sub DelSht_2()
         Application.DisplayAlerts = False           '设置不显示警告对话框
         Dim sht As Worksheet
         For Each sht In Worksheets
             If sht.Name <> ActiveSheet.Name Then  '判断sht引用的是否是活动工作表
                 sht.Delete                        '删除sht引用的工作表
             End If
         Next sht
         Application.DisplayAlerts = True            '重新设置显示警告对话框
     End Sub

    如果在程序中将DisplayAlerts属性设置为False,一定要记得在程序结束前将其重新设置为True,否则后面执行任何操作都不会弹出警告对话框。

    3.借助WorksheetFunction属性使用工作表函数

    常用的工作表函数,如SUMIF、VLOOKUP、MATCH和COUNTIF等函数VBA中没有,但是可以使用Application对象的WorksheetFunction属性来调用这些函数。

    图2 编写代码统计A1:B50单元格区域中大于1000的数据个数

    如想统计图2中A1:B50单元格区域中大于1000的数值有多少个,代码可以写为:

    Sub CountTest_2()
         Dim mycount As Integer
         mycount = Application.WorksheetFunction.CountIf(Range("A1:B50"), ">1000")
         MsgBox "A1:B50中大于1000的单元格个数为:" & mycount
     End Sub

    注:如果VBA中已经有了相同功能的函数,就不能再通过WorksheetFunction属性引用工作表中的函数,否则会出错。并且,不是所有的工作表函数都能通过WorksheetFunction 属性来调用。

     


    微信公众号:VBA168

    淘宝店铺地址:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-21233576391.4.1af0683dzrx3oU&id=584940166162

    关注微信公众号,每天及时接收Excel VBA经典示例讲解。

    淘宝店铺提供Excel定制服务。

    祝你工作和学习更轻松!

     

    展开全文
  • Excel VBA:Application对象

    2020-01-13 19:37:59
    Application 对象 代表整个 Microsoft Excel 应用程序。 说明 Application 对象包括: 应用程序范围的设置和选项。 返回顶级对象的方法,如 ActiveCell 和 ActiveSheet 等。 示例 使用 Application 属性可返回...

    Application 对象

    代表整个 Microsoft Excel 应用程序。

    说明

    Application 对象包括:

    • 应用程序范围的设置和选项。
    • 返回顶级对象的方法,如 ActiveCellActiveSheet 等。

    示例

    使用 Application 属性可返回 Application 对象。下例对 Application 对象应用 Windows 属性。

    Application.Windows("book1.xls").Activate

    下例在其他应用程序中创建 Microsoft Excel 工作簿对象,然后在 Microsoft Excel 中打开工作簿。

    Set xl = CreateObject("Excel.Sheet")
    xl.Application.Workbooks.Open "newbook.xls"

    许多属性和方法都返回最常用的用户界面对象,如活动单元格(ActiveCell 属性),这些属性和方法使用时可以不加 Application 对象识别符。例如,不必写为

    Application.ActiveCell.Font.Bold = True

    可写为

    ActiveCell.Font.Bold = True

    source:VBA Help 

    展开全文
  • a = Application.FindFile MsgBox a If a = True Then MsgBox "dd" Else MsgBox "tt" End If End Sub getopenfilename 这个函数和findfile有点不一样,这个函数是不会打开相关文件的,只会返回...

    findfile

    findfile 就是打开一个问题如果打卡成功,则返回为true

    Sub b()
    a = Application.FindFile
    MsgBox a
    If a = True Then
    MsgBox "dd"
    Else
    MsgBox "tt"
    End If
    End Sub
    

    getopenfilename

    这个函数和findfile有点不一样,这个函数是不会打开相关文件的,只会返回文件的名字奥利给兄弟们

    Sub b()
    a = Application.GetOpenFilename‘弹出来的名字是带着路径和后缀的
    MsgBox a
    End Sub
    

    FileFilter
    可以选择一些相关的细节,之后可以持续补充

    getsaveasfilename

    据说这个玩意也就是返回一个路径和名字,那和上面那个open的函数,有啥子区别啊
    具体一些参数用到了之后再说吧

    filedialog

    这个玩意也是获取路径的,获取路径的法子那么多,这个以后遇到了再说吧

    展开全文
  • vbaApplication.Run

    2020-04-28 13:17:46
    'module3 Sub Macro1() MsgBox 1 End Sub Sub Macro2() MsgBox 2 Application.Run "Macro1" End Sub Function f1(a) MsgBox a & "module3" f1 = a End Function 'module4 Sub maCRO2() ...
    'thisworkbook.module3
    Sub Macro1()
        MsgBox 1
    End Sub
    
    Sub Macro2()
        MsgBox 2
        Application.Run "Macro1"
    End Sub
    
    Function f1(a)
        MsgBox a & "module3"
        f1 = a
    End Function
    
    'thisworkbook.module4
    Sub maCRO2()
      Application.Run ("Macro1")
    End Sub
    
    Function f1()
        f1 = "module4"
        MsgBox f1
    End Function
    
    'thisworkbook.module5
    Sub test1()
       Application.Run "Macro2"				'ng
    End Sub
    
    Sub test2()
       Application.Run("module3.Macro2")	'ok
    End Sub
    
    Sub test3()
       f1r = Application.Run "module4.f1"	'ok
    End Sub
    
    Sub test4()
       f1r = Application.Run("module3.f1", 1)	'ok
    End Sub
    
    Sub test5()
       f1r = Application.Run("'2.xlsm'!module2.f1", 1)	'ok
    End Sub
    
    Sub test6()
       Application.Run "'2.xlsm'!module2.s1"	'ok
    End Sub
    
    Sub test7()
       Application.Run ("'C:\Users\user\Desktop\3\2.xlsm'!module2.s1")	'ok
    End Sub
    
    Sub test8()
       f1r = Application.Run("'C:\Users\user\Desktop\3\2.xlsm'!module2.f1", 1)	'ok
    End Sub
    
    '2.xlsm-->module1
    Sub s1()
        MsgBox "s1"
    End Sub
    
    '2.xlsm-->module2
    Sub s1()
        MsgBox "m2s1"
    End Sub
    
    Function f1(a)
        f1 = a
        MsgBox f1
    End Function
    

    调用方法:

    • application.run 方法名,参数1,参数2,xxx
    • application.run (方法名,参数1,参数2,xxx)

    两种方法都可以,如果要返回值只能调用第二种,即result=application.run (方法名,参数1,参数2,xxx)

    同一个excel文件的方法调用:

    module3/4/5在同一个excel文件。module5利用application.run调用其他module的sub/function时,如果该sub/function名在所有module里唯一,可以不加模块名(推荐全加模块名)。否则报错,需要模块名.方法名调用。
    模块名和方法名都不区分大小写。

    不同excel文件的方法调用:

    • 方法1:Application.Run " ‘文件名’ “!模块名.方法名”
    • 方法2:Application.Run " ‘路径+文件名’ “!模块名.方法名”
      必须带上文件名和模块名,即使方法在该文件唯一。且文件名两边有单引号,文件名和模块名间有!。
      如果被调用的工作簿是打开状态,方法1和方法2都可以。如果是关闭状态,方法2会打开路径+文件名进行调用,方法1会打开当前文件路径+文件名进行调用。
    展开全文
  • 发现一个现象,当Application.Calculation为自动计算状态时,如果工作表中存有公式,2003版似乎并不降低VBA的运行速度,但2007版则影响很大,速度降低的特别明显,尤其是数据量大时,速度降低的令人难以忍受。...
  • VBA小常识(15)—Application对象学习自杨洋老师《全民一起学VBAApplication是位于最顶端的对象,代表excel程序本身,所有对象都属于它。1. application.cells当前处于激活状态的工作表,即“活动工作表”的...
  • vba Application.OnTime 定时器

    千次阅读 2013-02-02 09:33:00
    最近做了一个vba的小项目,用到了 Application.OnTime 定时器。Application.OnTime 常用于 vba excel 定时执行,页面刷新等方面,但关闭时excel时会遇到一些问题,比如不注销,定时器,excel 无法关闭。注销时报错等...
  • Excel VBA - Application对象

    千次阅读 2011-10-27 23:05:42
    Application.Version 显示Excel的版本号 Application.UserName 显示当前用户的用户名 Application.StatusBar = "状态栏" 状态栏显示内容 Application.StatusBar = False 状态栏不显示内容 Application.Wait ...
  • VBA编程时inputbox 有两种用法,一个是inputobx函数,一个是application.inputbox方法,两者用法差不多,差别在后者多了输入类型,导致返回值也有很大不同。 1、inputobx函数在输入字符串后点击“确认”按钮返回字符...
  • The Active Properties ActiveCell ActiveChart ActivePrinter ActiveSheet ActiveWindow ActiveWorkbook Selection Display Alerts Application.DisplayAlerts = False ’operatio...
  • VBAApplication对象的常用属性和方法

    千次阅读 2020-02-01 12:22:05
    1 Application 对象的常见属性 1.0对象管理器里可以查看application的所有属性,方法 Dim i As cell 错误,没有这种类型定义 只能 dim i as range dim sh as sheet dim wb as workbook 1.1 Application...
  • application_development_in_the_environment_VBA 课程中的实验室工作环境中的应用程序开发VBA
  • 'Application.Intersect 方法'返回一个 Range 对象,该对象表示两个或多个区域重叠的矩形区域。 PS:Is Nothing 用于判断对象是否存在,对象可以是工作簿,工作表,单元格区域等 教学代码: 1 Sub test() 2 ...
  • Application对象常用属性【ActiveCell属性】ActiveCell属性返回一个Range对象,表示当前窗口或指定窗口中的单元格。如果窗口没显示工作表,则此属性无效。【代码区域】 Sub 激活单元格() Worksheets("sheet1")....
  • 10_Application对象的ScreenUpdating属性_ExcelVBA其实很简单视频导读
  • FileDialog 对象 提供文件对话框,其功能与 Microsoft Office 应用程序中标准的...FileDialog 属性位于每个单独 Office 应用程序的 Application 对象中。该属性使用一个参数 DialogType确定该属性返回的 FileDialo...
  • 笔者曾见过一位朋友正在编写一段程序,用的是VBA,程序代码如下:  With ActiveWindow  If WindowS tate = wd WindowS tateMaximize Then 'this is the first part!  MsgBox "This is a Maximize Window"  ...
  • 应用APPLICATION时候dim wk as workbookset wk = application.workbooks.open()可以在后台打开EXCEL文件,并在前台显示 dim wk as workbookdim app as new applicationset wk = app .workbooks.open()可以在后台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,747
精华内容 698
关键字:

applicationvba