精华内容
下载资源
问答
  • vba vba常用代码大全 vba vba常用代码大全 八 刖言 我们平时在工作表xx的公式xx常常使用函数Excel自带的常用的函数 多达300多个功能强大丰富多彩但是在 VBAxx不能直接应用必须在 函数名前面加上对象比如 Applicati ...
  • 《Excel VBA常用代码实战大全》重点强调实践性,旨在帮助Excel初学者和有一定ExcelVBA编程基础、希望进一步提高的读者掌握VBA编程设计的技巧。全书精选150个典型范例,近245个技巧,以实用为主,知识点针对性强,并...
  • 很喜爱 VBA,喜欢使用她对 Excel 操作实现所需的功能,更喜欢使用 VBA 控制 Excel 以及 实现结果后的那种感觉。 一直都想对 ExcelVBA 进行系统的整理和归纳,但由于对 Excel 及 VBA 了解得不够深入, 总觉得无从下手...
  • Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.
  • 这本书还是很赞的,书里面有150个范例,200多个技巧,还是以实用为主,知识点针对性强,适合Excel初学者和有一定ExcelVBA编程基础的同学
  • 《EXCEL VBA 常用代码实战大全》示例文件
  • Excel VBA常用代码总结1 改变背景色 Range"erior.ColorIndex = xlNone ?ColorIndex一览 改变文字颜色 Range"A1.Font.ColorIndex = 1 获取单元格 Cells(1, 2) Range"H7) 获取范围 Range(Cells(2, 3, Cells(4, 5) ...
  • EXCEL_VBA常用代码实战大全.doc 20M 630页 知识全面!
  • excelVBA常用代码实战大全excelVBA常用代码实战大全excelVBA常用代码实战大全excelVBA常用代码实战大全
  • VBA常用代码合集

    千次阅读 多人点赞 2020-12-19 11:13:11
    VBA常用代码模版Tp0️⃣—零零散散小功能(持续更新)Tp1️⃣—输出活动页面筛选后的行数Tp2️⃣—创建数组存放数据Tp2-1 静态数组Tp2-2 动态数组Tp3️⃣ 创建字典存放数据Tp4️⃣ 优化代码运行速度 Tp0️⃣—零零散...

    Tp0️⃣—零零散散小功能(持续更新)

    • 剪切列
    • 替换字符
    • 取消复制剪切状态
    • 浮点数向上取值
    • 区域添加边框
    • 区域设置颜色
    • 调整列宽、行高
    • 待更新
    '  小功能集合
    Sub Demos()
    
    	'	剪切一列到指定列
    	With ThisWorkbook.Sheets(2)    
    		.[AI:AI].Cut    
    		.[AE:AE].Select    
    		Selection.Insert Shift:=xlToRight
    	End With
    
    	'	替换字符,将(空白)替换为空
    	With worksheet.[C:C]
    		.Replace "(空白)", ""
    	End With
    	
    	'	取消复制剪贴状态
    	Application.CutCopyMode = False
    	   
    	'	将带有小数的数据向上取整
    	NewData = Application.WorksheetFunction.RoundUp(Datas, 0)
    
    	' 	单元格区域添加边框
    	.Range("A4:N" & .Range("A9999").End(xlUp).Row).Borders.LineStyle = xlContinuous
    
    	'  -------------单元格标色-------------
    	'  指定区域标色
    	With Range("C2:G9")
        	.Interior.ColorIndex = 0	' 无填充颜色
         	.Interior.ColorIndex = 3	' 红色
         	.Interior.ColorIndex = 5	' 蓝色              
        End With
        
    	' 实现自动调整行高、列宽
    	Rows("1:5").EntireRow.AutoFit			' 调整1至5行行高
        Columns("A:AA").EntireColumn.AutoFit    ' 调整A至AA列列宽
        ' 设置行高、列宽为固定值
        Rows("1:5").RowHeight = 15				' 设置1至5行行高为15
        Columns("A:AA").ColumnWidth = 15		' 设置A至AA列列宽为15
    
    End Sub
    

    颜色索引-Range属性
    Excel颜色索引

    Tp1️⃣—输出活动页面筛选后的行数

    ' 获取活动页面筛选后的行数
    Sub RowCntAfterFilter()
    
        Dim rngCell As Range
        Dim lngRowCnt As Long
        For Each rngCell In [a1].CurrentRegion.SpecialCells(xlCellTypeVisible).Areas
            lngRowCnt = lngRowCnt + rngCell.Rows.Count
        Next rngCell
    	rows_count =  lngRowCnt - 1   '可视区行数
        MsgBox "筛选后数据行数为:" & rows_count 
        Set rngCell = Nothing
        
    End Sub
    

    Tp2️⃣—创建数组存放数据

    通过数组可以快速对数据进行处理
    前提:表格数据须规范,不考虑合并单元格
    一维数组:数字(1,2,3,4),字符串(a,b,c,d)
    二维数组:((1,1),(1,2),(1,3),(2,1),(2,2),(2,3)) 表格结构、行列转置、计算、遍历、统计…
    多维数组:不是很熟悉,不敢乱说( ̄□ ̄||)
    简单介绍静态数组动态数组的使用

    Tp2-1 静态数组

    Sub SetArray()
    	’   静态数组可直接通过 变量名=数组()的方式设置
    	array_number = Array(1,2,3,4,5)
    	array_string = Array("张三","李四","王五","Sugar","Smile")
    	
    	'  可遍历,参数:count,Index 取值:data = array_data(1)
    	'  赋值
    	.[A1:A5] = array_number 
    	.[B1:B5] = array_string
    
    	'存放单元格区域数据到数组(二维数组的快捷应用)
    	Dim arr As Variant       '定义一个Variant类型的变量,名称为arr
       	arr = Range("A1:C3").Value '将A1:C3中保存的数据存储到数组arr里
       	Range("E1:G3").Value = arr '将数组ar写入E1:G3单元格区域
    
    End Sub
    

    Tp2-2 动态数组

    Sub VimArray()
    
    	'自定义动态数组长度n,上界为0
    	Dim n As Integer
    	n = 0
    
    	Dim SupArr() As String	 ' 定义动态数组存放供应商名称
    	With ActiveSheet   
        	For i = 2 To .[A1048576].End(xlUp).Row
            	ReDim Preserve SupArr(n)		 '  给动态数组重定义一个实际的大小
            	n = n + 1
            	SupArr(n - 1) = .Cells(i, 3).Value  ' 存到动态数组里去
        	Next i
    	End With
    
    End Sub
    

    Tp3️⃣ 创建字典存放数据

    通过字典可以快速对数据进行处理
    存放键值对关系,key具有唯一性,
    参数:count,keys,values,Item
    需要创建字典对象后使用

    '与Excel单元格结合,创建字典存放数据
    Sub RngDict()
    
    	Dim DicManForm As Object
    	Set DicManForm = CreateObject("Scripting.Dictionary")
    	key_MaxRow = ActiveSheet.[A66666].End(xlUp).Row	'活动工作表A列的最后一行的行数
    	
        '对A列进行遍历
        For key_Row = 2 To key_MaxRow
        	'取A列不重复的值作为字典的key,索引值唯一
        	KeyXX = ActiveSheet.Cells(key_Row, 1).Value
         	'导入条件:不为空,不重复
         	If KeyXX <> "" And DicManForm.Exists(KeyXX) = False Then
                DicManForm.Add KeyXX, key_Row
          	End If
        Next
        '通过key值,重设对应的value,key不存在时会报错
        DicManForm(key) = value
    	Set DicManForm = Nothing
    
    End Sub
    

    Tp4️⃣ 优化代码运行速度

    为了加快代码的执行速度,最简单的方式,将代码的执行过程设置为不显示,可以在代码执行时,临时关闭后续设置:自动重算自动刷新弹窗警告
    温馨提示:以下代码需要成对出现,设置False后,末尾改回True

    Sub AppSetting()
    
    	’  程序开始
        With Application
            .ScreenUpdating = False		'  关闭屏幕刷新
            .EnableEvents = False		'  关闭事件触发
            .DisplayAlerts = False		'  关闭弹窗提示
        End With
        
        ' Your Code				'   调用程序运行的主体代码
    
    	’程序末尾
        With Application
            .ScreenUpdating = True		'  恢复屏幕刷新
            .EnableEvents = True		'  恢复事件触发
            .DisplayAlerts = True		'  恢复弹窗提示
        End With
        
    End Sub
    

    好久不见、更新继续

    Tp5️⃣ 轻松实现工作簿加密

    Sub 解除全部工作表保护()
        Dim n As Integer
        For n = 1 To Sheets.Count
            Sheets(n).Unprotect
        Next n
    End Sub
    
    Sub 为指定工作表加指定密码保护表()
        Sheet10.Protect Password:="123"
    End Sub
    
    Sub 在有密码的工作表执行代码()
        Sheets("1").Unprotect Password:=123 '假定表名为“1”,密码为“123”  打开工作表
        Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True   '隐藏C列空值行
        Sheets("1").Protect Password:=123    '重新用密码保护工作表
    End Sub
    

    Tp6️⃣ 通过对话框选择文件-1

    ' 设置选择文件的弹出窗口,自主选择文件
    Sub FilePicker()
        
        Open_Path = ThisWorkbook.Sheets("操作界面").[B4]
        
        '新建一个对话框对象
        Set FileDialogObject = Application.FileDialog(msoFileDialogFilePicker)
        
        '配置对话框
        With FileDialogObject
            
            .Title = "请选择目标文件所在的文件夹:"
            
            '添加判断,改变对话框默认打开的路径
            '默认打开上次的文件路径
            If Open_Path = "" Then
            .InitialFileName = "C:\"
            Else
            .InitialFileName = Open_Path
            End If
            
        End With
        
        '显示对话框
        FileDialogObject.Show
        '获取选择对话框选择的文件
        Set paths = FileDialogObject.SelectedItems
        
        With Sheets("操作界面")
            .[I:I].Clear
            file_ = paths.Item(1)       '包含绝对路径的文件名
            .[B4].Value = paths.Parent.InitialFileName      '当前文件所在目录
            .[B6].Value = Right(file_, Len(file_) - Len(paths.Parent.InitialFileName))  '获取文件
            
            '选择多个文件时,遍历所选文件,并写入I列
            If paths.Count > 1 Then
                i_Row = 2
                For Each Item In paths
                    .Range("I" & i_Row) = Item
                    i_Row = i_Row + 1
                Next
            End If
            
        End With
        
    End Sub
    
    

    Tp7️⃣ 通过对话框选择文件-2

    '通过对话框选择文件路径
    Sub FolderPicker()
        
        Open_Path = ThisWorkbook.Sheets("操作界面").[B4]
        
        '新建一个对话框对象
        Set FolderDialogObject = Application.FileDialog(msoFileDialogFolderPicker)
        
        '配置对话框
        '配置对话框
        With FolderDialogObject
            
            .Title = "请选择目标文件所在的文件夹:"
            
            '添加判断,改变对话框默认打开的路径
            '默认打开上次的文件路径
            If Open_Path = "" Then
            .InitialFileName = "C:\"
            Else
            .InitialFileName = Open_Path
            End If
            
        End With
        
        FolderDialogObject.Show '显示对话框
        
        Set paths = FolderDialogObject.SelectedItems            '获取选择对话框选择的文件夹
        Set fso = CreateObject("Scripting.filesystemobject")    '取目标文件
        Set myf = fso.getfolder(paths.Item(1))                  '从指定路径下获取文件
        
        With Sheets("操作界面")
            .[I:I].Clear
            .[B4].Value = paths.Item(1)
            
            i_Row = 2
            For Each file In myf.Files
    '            .Range("I" & i_Row) = file             '记录绝对路径+文件名
                .Range("I" & i_Row) = file.Name         '记录文件名
                i_Row = i_Row + 1
            Next
            
        End With
        
    End Sub
    
    
      未完待续、、、
      期待下次相遇
    
    展开全文
  • EXCEL_VBA常用代码实战大全

    热门讨论 2012-05-17 09:56:10
    VBA代码大全,可以当做查询手册使用,非常方便实用,希望亲们能够喜欢
  • EXCEL+VBA常用代码实战大全,TXT文件,文件小巧,手机也能看
  • 八 - 刖言 我们平时在工作表单元格的公式中常常使用函数EGcel自带的常用的函数多达300多个, 功能强大丰富多彩但是在 VBA中不能直接应用必须在函数名前面加上对象比如 Applicatio n. WorksheetF un ctio n.Sum(arg1,...
  • VBA常用代码解析.doc

    2015-10-19 19:21:54
    VBA常用代码解析,非常详细的解析.从入门到精通. 更多内容请关注我的微信
  • VBA 常用代码 - 01

    2021-02-08 20:18:23
    1、运用VBA.Split() 给字符串分列,选取第一部分 例:“101203\其他货币资金\低于等于3个月的流动性理财存款”,选取“101203” Sub test() Dim rows As Integer '声明变量 rows = Range("A1048576").End(xlUp)...

    1、运用VBA.Split() 给字符串分列,选取第一部分

    例:“101203\其他货币资金\低于等于3个月的流动性理财存款”,选取“101203”

    Sub test()
    
    Dim rows As Integer '声明变量
    
    rows = Range("A1048576").End(xlUp).Row '数据的最下边位置
    'Range("c1") = rows
    
    For i = 1 To rows
    
        If (Range("B" & i) = "") Then
            Range("B" & i) = Range("A" & i)
            Range("C" & i) = rows
            Range("A" & i) = VBA.Split(Range("B" & i), "\")(0) '将字符串按“\”分列,取第一部分
        End If
        
    Next
    
    End Sub
    

    注:split函数的用法:

    Split函数是在处理字符串时常用的一个函数,它的作用是将字符串按特定的字符分开,返回的是一个一维数组,数组的起始下标为0,看下面的例子

    Sub test()
    
    Dim arr,brr,s,m,n,y
    
    s = "abc,d,e,f,g"
    arr = Split(s,",")  '结果是一个包含5个项的一维数组
    m = Split(s,")(0)  '令m为数据的第1个项,为abc brr =Split(s,",2)将s以逗号分为2项,brr(0)=abc,brr(1)="d,e,f,g"
    n = Split(s,",2)(0)  '令n=abc
    y = Split(s,",2)(1)  '令y="d,e,f,g"
    
    End Sub

    现在有一个字符串"abc,d,e,f.g,h",arr = Split(s,",")就是将字符串以","为分隔符分开,返回的arr是一个一维数组,arr(0)-abc,arr(1)=d,arr(2)=e,arr()=f,arr(4)=-g,当然在这里split(s,",")(0)与arr(0)是等价的,将split(s",")直接看成一个数组,(0)表示这个数组的第1项。如果不想将s全部分开,可以在分隔符后面再加上个参数来表示你想分成几份。比如split(s,",2)这里的2就表示将s分成2份即可,返回结果是"abc"和"d,e,fg",如果是split(s,",3)那么结果就是"abc","d","e,f,g"三个值了。

    2、将excel 中的每张sheet单独保存成一个文件

    Sub test()
    
    Dim sht As Worksheet    '声明变量
    
    Application.ScreenUpdating = False  '关闭屏幕更新
    
    For Each sht In Sheets
        sht.Copy
        ActiveWorkbook.SaveAs Filename:="C:\Users\Desktop\拆分后文件\" & sht.Name & ".xlsx"    '另存的位置
        ActiveWorkbook.Close
    Next
    
    Application.ScreenUpdating = True   '开启屏幕更新
    
    End Sub
    

    展开全文
  • 大家在学习VBA的过程中,相信都有收集代码的习惯,我也是,硬盘中藏有许多VBA实例、代码,在去年《VBA精粹》的写作过程中更是在网络上收集了大量的VBA资料。这些散布在各处的代码、实例对学习的帮助很大,但是查找...
  • 所涉及的所有范例都以Excel 2007制作成示例文件,包含在《EXCEL VBA 常用代码实战大全》 示例文件文件夹中,每一章都有自己的文件夹。例如,要查看第3章的示例文件,可以查看《EXCEL VBA 常用代码实战大全》示 文件\...
  • EXCEL VBA 常用代码实战大全》示例文件
  • 太实用了!Excel VBA常用代码

    万次阅读 多人点赞 2018-12-19 11:36:27
    前两天有两位朋友留言想收集一些VBA常用代码,今天开始会陆续分享一些! 记得收藏好哦,因为今后你应用到稍大型Excel VBA程序时,这其中某些代码肯定会用到。 来看看都是哪些常用代码: ...

     

    前两天有两位朋友留言想收集一些VBA的常用代码,今天开始会陆续分享一些!

    记得收藏好哦,因为今后你应用到稍大型Excel VBA程序时,这其中某些代码肯定会用到。

    来看看都是哪些常用代码:

    下面先举一个简单的例子:

    场景再现:在当前的工作表中插入一张e盘中名为1.jpg的图片(长350、高300,距离Excel左侧90、上边框230)

    操作方法:

    第一步,打开vba代码区,输入通用格式【输入 sub 统计()回车即可】,并将名称改为“统计”;

    第二步,输入控制语句(ActiveSheet.Shapes.AddPicture "e:.jpg", True, True, 90, 230, 350, 300);

    第三步,看看结果。

    后面会分享更多关于Excel VBA的知识,欢迎大家留言、讨论!

    展开全文
  • Range 对象是 Excel 应用程序中最常用的对象,一个 Range 对象代表一个单元格、一 行、一列、包含一个或者更多单元格区域(可以是连续的单元格,也可以是不连续的单元格) 中选定的单元格,甚至是多个工作表上的一组...
  • EXCEL VBA 常用代码

    2018-09-30 22:13:41
    收藏的常用代码集 需要的时候就可以在WORD上进行复制,当然你还可以做成类模块调用
  • VBA常用代码VSTO(C#版),源码
  • 链接:https://pan.baidu.com/s/1vPQaUrZ2UbY7BS4wiHGnXw 提取码:68ee
    展开全文
  • vba常用代码大全.doc

    2021-10-06 20:48:14
    vba常用代码大全.doc
  • EXCEL_VBA常用代码大全(有具体的实例,非常适用开始使用的人员学习使用。要边学边练才好。(有具体的实例,非常适用开始使用的人员学习使用。要边学边练才好。(有具体的实例,非常适用开始使用的人员学习使用。要边学...
  • VBA常用代码 excel? 常用宏? 宏代码? 大全 本示例为设置密码窗口 (1? If Application.InputBox"请输入密码) = 1234 Then? [A1] = 1 '密码正确时执行? Else: MsgBox "密码错误即将退出" '此行与第2行共同设置密码? ...

空空如也

空空如也

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

vba常用代码