精华内容
下载资源
问答
  • 一小时搞定 简单VBA编程 Excel宏编程快速扫盲

    万次阅读 多人点赞 2018-01-19 09:45:19
    Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。 1. Excel VBA编辑界面 (进入路径: sheet名称 --> 鼠标右键菜单 ...

    Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。

     

    1. Excel VBA编辑界面

    (进入路径: sheet名称 --> 鼠标右键菜单 --> 查看代码)

     

    2. 输入代码方法:

    在VBE编辑器的代码模块中输入VBA代码,通常有以下几种方法: 

    ■ 手工键盘输入; 

    ■ 使用宏录制器,即选择菜单“工具——宏——录制新宏”命令,将所进行的操作自动录制成宏代码; 

    ■ 复制/粘贴代码,即将现有的代码复制后,粘贴到相应的代码模块中; 

    ■ 导入代码模块:文件-->导入文件 **不用的模块可以:文件-->移出模块

     

    3. VB代码阅读扫盲

    (1) 模块声明:

    Sub sName() ... End Sub
    Sub xxxxx()
    XXXXXXXXX
    End Sub

    (2) 变量声明:

    Dim sPara As sType
    Dim para1, para2, para3
    Dim para4 As workbook, para5 As String
    Dim G As Long

    (3) 选择结构:

    With ... End With
    If condition Then ... End If
    
    # 举个例子:遍历每个Sheet把表粘贴成一个大表的语句,使用For Next With End With语句
    
    With Workbooks(1).ActiveSheet
    For G = 1 To Sheets.Count
    Wb.Sheets(G).UsedRange.Copy       .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
    Next
    WbN = WbN & Chr(13) & Wb.Name
    Wb.Close False
    End With

    (4) 循环结构

    Do While condition ... Loop
    For i = 0 to 100 ... Next

    (5) 输出Log:

    MsgBox sString

    案例解析:解析拷贝路径下所有Excel到一个工作表下的示例:

    ************************************************************************************************************************************

    Sub 合并当前目录下所有工作簿的全部工作表()  #模块名称
    Dim MyPath, MyName, AWbName	  		#变量声明
    Dim Wb As workbook, WbN As String
    Dim G As Long
    Dim Num As Long
    Dim BOX As String
    Application.ScreenUpdating = False			#停止屏幕刷新
    MyPath = ActiveWorkbook.Path				#获取当前工作文件路径
    MyName = Dir(MyPath & "\" & "*.xls")		#获取当前文件名(截取字符串)
    AWbName = ActiveWorkbook.Name			#获取当前BookName
    Num = 0								#准备进入循环处理
    Do While MyName <> ""					#第一个循环体:遍历所有文件 终止条件是 文件名为空
    If MyName <> AWbName Then				#条件:文件名当前激活文件不同
    Set Wb = Workbooks.Open(MyPath & "\" & MyName)		# 设置工作表的名称(当前Sheet Name)
    Num = Num + 1						#计数用于输出
    With Workbooks(1).ActiveSheet
    .Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
    #赋值语句:激活Sheet的A列最后一个单元格赋值为MyName去掉‘.xls’的部分
    #Left 截取字符串 去掉了'.xls'
    #workbooks(n) 为取工作簿 的写法
    #A65535(一个极大数)单元格向上,最后一个非空的单元格的行号
    For G = 1 To Sheets.Count					#嵌套循环体:遍历文件的所有Sheets
    Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)	
      	#赋值所有内容到以结束内容空一行开始的表格中
    Next									#且套循环体结束							
    WbN = WbN & Chr(13) & Wb.Name			# & 为合并字符串的符号		
    Wb.Close False							#对于文件操作结束,关闭Excel文件
    End With								#退出第二个判断
    End If								#退出第一个判断
    MyName = Dir		 					#怎么拿到第二个bookName
    Loop									#循环体结束
    Range("B1").Select						#选中B1
    Application.ScreenUpdating = True			#允许Excel屏幕刷新
    MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
    End Sub

     

    ************************************************************************************************************************************

    常用模块:

    1. 把一个workBook的一块表格拷贝到另一个WorkBook中的一般化方法:

    上面的代码中是一种简单的实现:拷贝所有内容到空行区域

    需要将拷贝的内容和粘贴的位置控制更加精准控制:

     

    拷贝指定位置到指定位置:

    Workbooks("工作簿1.xls").Sheet1.Range("A1:C50").Copy ThisWorkbook.Sheet2.Range("A1")

    2. 找到粘贴位置:

    b=sheet2.[BI].end(xlToLeft).row+1 获取最后一次编辑的各自的列号!
    
    .Range("B65536").End(xlUp).Row + 2 最后一次编辑的格子的行号

    A1 直接编辑

    .Cells(nRowNo, nColNo)

    ...

     

     

    实战案例分析:一个将多个相同格式表格合并生成横表的例子:

    Sub 合并当前目录下所有工作簿的全部工作表()
    
    Dim MyPath, MyName, AWbName
    Dim Wb As Workbook, WbN As String
    Dim G As Long
    Dim Num As Long
    Dim BOX As String
    Dim HasTitil As Boolean
    Dim LastRange As String
    Dim CurRowNo As Long
    
    Application.ScreenUpdating = False
    MyPath = ActiveWorkbook.Path
    MyName = Dir(MyPath & "\" & "*.xls")
    AWbName = ActiveWorkbook.Name
    Num = 0
    HasTitil = False
    
    With Workbooks(1).ActiveSheet
    .Cells(1, 2) = "Cor.Name"
    Do While MyName <> ""
    If MyName <> AWbName Then
    Set Wb = Workbooks.Open(MyPath & "\" & MyName)
    Num = Num + 1
    .Cells(1, Num + 2) = Left(MyName, Len(MyName) - 4)
    
    If HasTitil <> True Then
    
    Wb.Sheets(1).Range("A4:B43").Copy .Cells(2, 1)
    Wb.Sheets(1).Range("E4:F43").Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
    Wb.Sheets(2).Range("A5:B73").Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
    Wb.Sheets(2).Range("E5:F73").Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
    Wb.Sheets(3).Range("A4:B32").Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
    Wb.Sheets(3).Range("E4:F32").Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
    Wb.Sheets(4).Range("A5:B100").Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
    
    HasTitil = True
    End If
    
    CurRowNo = 2
    Wb.Sheets(1).Range("D4:D43").Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 40
    Wb.Sheets(1).Range("H4:H43").Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 40
    Wb.Sheets(2).Range("D5:D73").Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 69
    Wb.Sheets(2).Range("H5:H73").Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 69
    Wb.Sheets(3).Range("D4:D32").Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 29
    Wb.Sheets(3).Range("H4:H32").Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 29
    Wb.Sheets(4).Range("D5:D100").Copy .Cells(CurRowNo, Num + 2)
    
    Wb.Close False
    End If
    MyName = Dir
    Loop
    
    End With
    
    Range("B1").Select
    Application.ScreenUpdating = True
    End Sub

     

    展开全文
  • Excel宏编程

    2008-04-23 14:27:09
    Excel宏编程Excel宏编程Excel宏编程Excel宏编程
  • EXCEL宏编程帮助文档

    2010-12-06 10:34:01
    EXCEL宏编程帮助文档、从详细的基本概念讲解
  • Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。 1. Excel VBA编辑界面 (进入路径: sheet名称 --> 鼠标右键菜单 --&...

    Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。

    1. Excel VBA编辑界面

    (进入路径: sheet名称 --> 鼠标右键菜单 --> 查看代码)

    2. 输入代码方法:

    在VBE编辑器的代码模块中输入VBA代码,通常有以下几种方法:

    ■ 手工键盘输入;

    ■ 使用宏录制器,即选择菜单“工具——宏——录制新宏”命令,将所进行的操作自动录制成宏代码;

    ■ 复制/粘贴代码,即将现有的代码复制后,粘贴到相应的代码模块中;

    ■ 导入代码模块:文件–>导入文件 **不用的模块可以:文件–>移出模块

    3. VB代码阅读扫盲
    (1) 模块声明:

    Sub sName() … End Sub
    Sub xxxxx()
    XXXXXXXXX
    End Sub

    (2) 变量声明:

    Dim sPara As sType
    Dim para1, para2, para3
    Dim para4 As workbook, para5 As String
    Dim G As Long

    (3) 选择结构:

    With … End With
    If condition Then … End If

    举个例子:遍历每个Sheet把表粘贴成一个大表的语句,使用For Next With End With语句

    With Workbooks(1).ActiveSheet
    For G = 1 To Sheets.Count
    Wb.Sheets(G).UsedRange.Copy .Cells(.Range(“B65536”).End(xlUp).Row + 1, 1)
    Next
    WbN = WbN & Chr(13) & Wb.Name
    Wb.Close False
    End With

    (4) 循环结构

    Do While condition … Loop
    For i = 0 to 100 … Next

    (5) 输出Log:

    MsgBox sString
    案例解析:解析拷贝路径下所有Excel到一个工作表下的示例:


    Sub 合并当前目录下所有工作簿的全部工作表() #模块名称
    Dim MyPath, MyName, AWbName #变量声明
    Dim Wb As workbook, WbN As String
    Dim G As Long
    Dim Num As Long
    Dim BOX As String
    Application.ScreenUpdating = False #停止屏幕刷新
    MyPath = ActiveWorkbook.Path #获取当前工作文件路径
    MyName = Dir(MyPath & “” & “*.xls”) #获取当前文件名(截取字符串)
    AWbName = ActiveWorkbook.Name #获取当前BookName
    Num = 0 #准备进入循环处理
    Do While MyName <> “” #第一个循环体:遍历所有文件 终止条件是 文件名为空
    If MyName <> AWbName Then #条件:文件名当前激活文件不同
    Set Wb = Workbooks.Open(MyPath & “” & MyName) # 设置工作表的名称(当前Sheet Name)
    Num = Num + 1 #计数用于输出
    With Workbooks(1).ActiveSheet
    .Cells(.Range(“B65536”).End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
    #赋值语句:激活Sheet的A列最后一个单元格赋值为MyName去掉‘.xls’的部分
    #Left 截取字符串 去掉了’.xls’
    #workbooks(n) 为取工作簿 的写法
    #A65535(一个极大数)单元格向上,最后一个非空的单元格的行号
    For G = 1 To Sheets.Count #嵌套循环体:遍历文件的所有Sheets
    Wb.Sheets(G).UsedRange.Copy .Cells(.Range(“B65536”).End(xlUp).Row + 1, 1)
    #赋值所有内容到以结束内容空一行开始的表格中
    Next #且套循环体结束
    WbN = WbN & Chr(13) & Wb.Name # & 为合并字符串的符号
    Wb.Close False #对于文件操作结束,关闭Excel文件
    End With #退出第二个判断
    End If #退出第一个判断
    MyName = Dir #怎么拿到第二个bookName
    Loop #循环体结束
    Range(“B1”).Select #选中B1
    Application.ScreenUpdating = True #允许Excel屏幕刷新
    MsgBox “共合并了” & Num & “个工作薄下的全部工作表。如下:” & Chr(13) & WbN, vbInformation, “提示”
    End Sub


    常用模块:

    1. 把一个workBook的一块表格拷贝到另一个WorkBook中的一般化方法:

    上面的代码中是一种简单的实现:拷贝所有内容到空行区域

    需要将拷贝的内容和粘贴的位置控制更加精准控制:

    拷贝指定位置到指定位置:

    Workbooks(“工作簿1.xls”).Sheet1.Range(“A1:C50”).Copy ThisWorkbook.Sheet2.Range(“A1”)

    2. 找到粘贴位置:

    b=sheet2.[BI].end(xlToLeft).row+1 获取最后一次编辑的各自的列号!

    .Range(“B65536”).End(xlUp).Row + 2 最后一次编辑的格子的行号
    A1 直接编辑

    .Cells(nRowNo, nColNo)

    实战案例分析:一个将多个相同格式表格合并生成横表的例子:

    Sub 合并当前目录下所有工作簿的全部工作表()

    Dim MyPath, MyName, AWbName
    Dim Wb As Workbook, WbN As String
    Dim G As Long
    Dim Num As Long
    Dim BOX As String
    Dim HasTitil As Boolean
    Dim LastRange As String
    Dim CurRowNo As Long

    Application.ScreenUpdating = False
    MyPath = ActiveWorkbook.Path
    MyName = Dir(MyPath & “” & “*.xls”)
    AWbName = ActiveWorkbook.Name
    Num = 0
    HasTitil = False

    With Workbooks(1).ActiveSheet
    .Cells(1, 2) = “Cor.Name
    Do While MyName <> “”
    If MyName <> AWbName Then
    Set Wb = Workbooks.Open(MyPath & “” & MyName)
    Num = Num + 1
    .Cells(1, Num + 2) = Left(MyName, Len(MyName) - 4)

    If HasTitil <> True Then

    Wb.Sheets(1).Range(“A4:B43”).Copy .Cells(2, 1)
    Wb.Sheets(1).Range(“E4:F43”).Copy .Cells(.Range(“A65536”).End(xlUp).Row + 1, 1)
    Wb.Sheets(2).Range(“A5:B73”).Copy .Cells(.Range(“A65536”).End(xlUp).Row + 1, 1)
    Wb.Sheets(2).Range(“E5:F73”).Copy .Cells(.Range(“A65536”).End(xlUp).Row + 1, 1)
    Wb.Sheets(3).Range(“A4:B32”).Copy .Cells(.Range(“A65536”).End(xlUp).Row + 1, 1)
    Wb.Sheets(3).Range(“E4:F32”).Copy .Cells(.Range(“A65536”).End(xlUp).Row + 1, 1)
    Wb.Sheets(4).Range(“A5:B100”).Copy .Cells(.Range(“A65536”).End(xlUp).Row + 1, 1)

    HasTitil = True
    End If

    CurRowNo = 2
    Wb.Sheets(1).Range(“D4:D43”).Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 40
    Wb.Sheets(1).Range(“H4:H43”).Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 40
    Wb.Sheets(2).Range(“D5:D73”).Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 69
    Wb.Sheets(2).Range(“H5:H73”).Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 69
    Wb.Sheets(3).Range(“D4:D32”).Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 29
    Wb.Sheets(3).Range(“H4:H32”).Copy .Cells(CurRowNo, Num + 2)
    CurRowNo = CurRowNo + 29
    Wb.Sheets(4).Range(“D5:D100”).Copy .Cells(CurRowNo, Num + 2)

    Wb.Close False
    End If
    MyName = Dir
    Loop

    End With

    Range(“B1”).Select
    Application.ScreenUpdating = True
    End Sub

    展开全文
  • Excel 宏编程参考

    2010-10-14 15:04:41
    Excel 中,实现宏编程参考,文件中附带相关例子。
  • 10个excel VBA实例教程,为初级的人作为兴趣入门课程,也可以为有基础的人开拓自己的视野。从基础的知识,到实战性的功能,甚至连接数据库,二维码扫描等等。
  • 使用自动化运行Excel宏编程实例锦集,C++.net源代码编写,VisualStudio.net
  • 点击上方蓝字,每天一起学 Python,文末领送书福利文| varlemon编辑 | EarlGrey推荐 | 编程派公众号(ID:codingpy)之前发文介绍过一个叫GridStudio的神器,可以在网页版应用中将 Python 与表格处理结合起来。...

    点击上方蓝字,每天一起学 Python,文末领送书福利

    1d2aa036878a40a35122258185c7ce7a.png

    文 | varlemon

    编辑 | EarlGrey

    推荐 | 编程派公众号(ID:codingpy)

    之前发文介绍过一个叫GridStudio的神器,可以在网页版应用中将 Python 与表格处理结合起来。但是那并不是真正地在 Excel 中使用 Python 了,今天介绍一个叫 xlpython 的库,通过它我们可以用 Python 来开发 Excel 的宏脚本,真正实现在 Excel 中调用 Python。

    公众号:编程派Python 与 Excel 终于在一起了

    基本环境

    • 操作系统:Windows 10 x64

    • Office:2016

    安装Python

    1.下载Python安装包

    登录[https://www.python.org/downloads/windows/]进行下载 Python2.x或Python3.x均可,推荐Python3.x(因为2020年1月1日起Python2就停止服务了...)

    981dc10a6b7e1972ab61ee8fe0c4c879.png

    2.安装Python

    安装前,勾选 AddPython3.xto PATH选项。安装完毕之后,在Windows控制台可直接使用 python命令。

    498173ee4525ad7101a1a6150fe1ab4e.png

    3.检查是否安装成功

    Win+R,打开 运行,输入 PowerShell,打开命令行。输入 python-V,查看Python版本号。

    c7ecea10444f9c7af93ed715552baa4c.png

    4.安装PythonWin32库

    Python2.x 按以下方式安装

    pip install pypiwin32 -i https://mirrors.aliyun.com/pypi/simple/

    Python3.x 按以下方式安装

    pip install pywin32 -i https://mirrors.aliyun.com/pypi/simple/

    安装ExcelPython

    1.从[https://sourceforge.net/projects/excelpython/files/]处,下载 ExcelPython

    或[点击此处]直接下载

    add741e606feb99a7b5c812a0fd73a2a.png

    cbfc8a50c6fc9967c369216029a2d9db.png

    07fc09f343de89045d0b04342b0c3708.png

    3122e3e320a6940ff94c66488b47d437.png

    701aad84159bd9c89fbbc16d8f3d2c83.png

    2.新建一个Excel文件,打开可在标签栏显示 ExcelPython标签

    7a453e0a8376eff4650625918fabe037.png

    3.打开Excel选项——信任中心——信任中心设置——宏设置——安全性,选中“信任对于VBA工程对象模型的访问”,按确定即可。

    e0cb9c0262671d8a77cf89bd138c24a1.png

    测试安装是否正确

    1.将创建的 data.xlsx文件另存为 data.xlsm宏文件。

    2.回到Excel,点击 ExcelPython标签的 SetupExcelPython按钮

    6b74af89bbb5ec290195cbfcba9b514f.png

    3.桌面上会出现一个名为 xlpython的文件夹,以及一个与 *.xlsm文件同名的 *.py文件。

    9df824ee279caada114699562ecceb2a.png

    4.打开 data.py编辑,写入以下内容

    from xlpython import *

    import random

    @xlfunc

    def getRandomBirth():

    y = random.randint(1980, 2000)

    m = random.randint(1, 12)

    d = random.randint(1, 28)

    return str(y)+'/'+str(m)+'/'+str(d)

    @xlfunc

    def getAge(d):

    _today = [ 2019, 8, 30 ]

    _list = str(d).split('/')

    age = _today[0] - int(_list[0])

    if _today[1] < int(_list[1]):

    age -= 1

    elif _today[1] == int(_list[1]):

    if _today[2] < int(_list[2]):

    age -= 1

    else:

    pass

    else:

    pass

    return age

    da0db0c8c9dc89c4c23d3bf0e8d5a564.png

    5.回到Excel中,点击 ExcelPython标签的 ImportPythonUDFs按钮

    5e27e2318052d9fa33ff0eb598e3b1f0.png

    6.使用Python中定义的函数 在输入框中输入 =getRandomBirth()

    ee383c0d242299db4c85b0c2fe9ed10f.png

    效果如图

    d1f6866de288b8adf89723884dd883a5.png

    7.在Excel中使用定义的第二个函数

    09c3505347daa556711ce9ea7df2571b.png

    效果如图

    72733efd4eb0a0916ce1aaa85a8b1c02.png

    至此,可以使用Python进行Excel宏的开发。

    [https://www.python.org/downloads/windows/]: https://www.python.org/downloads/windows/

    [https://sourceforge.net/projects/excelpython/files/]: https://sourceforge.net/projects/excelpython/files/

    https://files.cnblogs.com/files/connect/excelpython-2.0.8.zip

    原文链接:https://www.cnblogs.com/connect/p/office-excel-python-conf.html

    # 文末送书活动 #

    活动规则大家请一定要查看,点击这篇推文哦:从今天起,每天至少送大家一本书这篇推文的福利赠书,还是我自己翻译的《Python编程无师自通》(先累计送 3 本),送给本篇文章点赞最多的精选留言者。下一篇推文会换一本,书籍的详细介绍可以点击下面的链接查看。

    回复下方「关键词」,获取优质资源

    回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

    回复关键词「书单02」,立即获取主页君整理的 10 本 Python 入门书的电子版

    回复关键词book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~

    推荐阅读

    • 你有一份代码审查问题清单,请查收

    • 电子书 | Python 爬虫技术升级必备

    • 深度!Python 解析 XML 数据的正确姿势

    • O'Reilly又出了一本免费的新书!关于深度学习首选这一本

    题图:pexels,CC0 授权。

    6e2bf82aa3e173e7574380c766e63d7a.png

    展开全文
  • Excel 宏编程的常用代码

    千次阅读 2010-02-24 09:46:00
    Excel 宏编程的常用代码 我们常用Excel统计一些数据,如果善用VBA,就能自动做出各种复杂的报表,懒人就是追求一劳永逸!不过,也不是真懒啦,只是用智慧(脑力劳动)将自身从体力劳动中解放出来而已,人类也是这样...

    Excel 宏编程的常用代码

    我们常用Excel统计一些数据,如果善用VBA,就能自动做出各种复杂的报表,懒人就是追求一劳永逸!不过,也不是真懒啦,只是用智慧(脑力劳动)将自身从体力劳动中解放出来而已,人类也是这样进步的。我有这样的感觉,就是每见到一个语句或函数,都会激发出偷懒的灵感来,哈哈,很自恋了,其实好玩而已。

    -------------------------------------------------------------------------

    用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!
    使用Dim语句
    Dim a as integer '声明a为整型变量
    Dim a '声明a为变体变量
    Dim a as string '声明a为字符串变量
    Dim a as currency ,b as currency ,c as currency '声明a,b,c为货币变量
    ......
    声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、Date、String(只限变长字符串)、String * length(定长字符串)、Object、Variant、用户定义类型或对象类型。


    强制声明变量
    Option Explicit
    说明:该语句必在任何过程之前出现在模块中。

    声明常数
    用来代替文字值。
    Const

    ' 常数的默认状态是 Private。
    Const My = 456

    ' 声明 Public 常数。
    Public Const MyString = "HELP"

    ' 声明 Private Integer 常数。
    Private Const MyInt As Integer = 5

    ' 在同一行里声明多个常数。
    Const MyStr = "Hello", MyDouble As Double = 3.4567


    选择当前单元格所在区域

    在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。
    Sub My_Select
    Selection.CurrentRegion.Select
    End sub

     

    返回当前单元格中数据删除前后空格后的值
    sub my_trim
    msgbox Trim(ActiveCell.Value)
    end sub

     

    单元格位移
    sub my_offset
    ActiveCell.Offset(0, 1).Select'当前单元格向左移动一格
    ActiveCell.Offset(0, -1).Select'当前单元格向右移动一格
    ActiveCell.Offset(1 , 0).Select'当前单元格向下移动一格
    ActiveCell.Offset(-1 , 0).Select'当前单元格向上移动一格
    end sub
    如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往
    sub my_offset 之下加一段代码 on error resume next

     

    注意以下代码都不再添加 sub “代码名称” 和end sub请自己添加!


    给当前单元格赋值
    ActiveCell.Value = "你好!!!"

     

    给指定单元格赋值
    例如:A1单元格内容设为"HELLO"
    Range("a1").value="hello"

    又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO"
    1.
    sheets("sheet2").select
    range("a1").value="hello"

    2.
    Sheets("sheet1").Range("a1").Value = "hello"

    说明:
    1.sheet2被选中,然后在将“HELLO"赋到A1单元格中。
    2.sheet2不必被选中,即可“HELLO"赋到sheet2 的A1单元格中。

     

    隐藏工作表
    '隐藏SHEET1这张工作表
      sheets("sheet1").Visible=False

     

    '显示SHEET1这张工作表
      sheets("sheet1").Visible=True


    打印预览
    有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。
    Dim my As Worksheet
    For Each my In Worksheets
    my.PrintPreview
    Next my

     

    得到当前单元格的地址
    msgbox ActiveCell.Address

     

    得到当前日期及时间
    msgbox date & chr(13) & time

     

    保护工作簿
    ActiveSheet.Protect

     

    取消保护工作簿
    ActiveSheet.Unprotect

     

    给活动工作表改名为 "liu"
    ActiveSheet.Name = "liu"

     

    打开一个应用程序
    AppActivate (Shell("C:/WINDOWS/CALC.EXE"))

     

    增加一个工作表
    Worksheets.Add

     

    删除活动工作表
    activesheet.delete

     

    打开一个工作簿文件
    Workbooks.Open FileName:="C:/My Documents/Book2.xls"

     

    关闭活动窗口
    ActiveWindow.Close

     

    单元格格式
    选定单元格左对齐
    Selection.HorizontalAlignment = xlLeft

     

    选定单元格居中
    Selection.HorizontalAlignment = xlCenter

     

    选定单元格右对齐
    Selection.HorizontalAlignment = xlRight

     

    选定单元格为百分号风格
    Selection.Style = "Percent"

     

    选定单元格字体为粗体
    Selection.Font.Bold = True

     

    选定单元格字体为斜体
    Selection.Font.Italic = True

     

    选定单元格字体为宋体20号字
    With Selection.Font
    .Name = "宋体"
    .Size = 20
    End With


    With 语句

    With 对象
    .描述
    End With

     

    清除单元格
    ActiveCell.Clear '删除所有文字、批注、格式


    返回选定区域的行数
    MsgBox Selection.Rows.Count

     

    返回选定区域的列数
    MsgBox Selection.Columns.Count


    返回选定区域的地址
    Selection.Address

     

    忽略所有的错误
    ON ERROR RESUME NEXT

     

    遇错跳转
    on error goto err_handle
    '中间的其他代码
    err_handle: ' 标签
    '跳转后的代码

     

    删除一个文件
    kill "c:/1.txt"

     

    定制自己的状态栏
    Application.StatusBar = "现在时刻: " & Time

     

    恢复自己的状态栏
    Application.StatusBar = false


    用代码执行一个宏
    Application.Run macro:="text"

     

    滚动窗口到a1的位置
    ActiveWindow.ScrollRow = 1
    ActiveWindow.ScrollColumn = 1

     

    定制系统日期
    Dim MyDate, MyDay
    MyDate = #12/12/69#
    MyDay = Day(MyDate)

     

    返回当天的时间
    Dim MyDate, MyYear
    MyDate = Date
    MyYear = Year(MyDate)
    MsgBox MyYear

     

    inputbox<输入框>
    XX=InputBox ("Enter number of months to add")

     

    得到一个文件名
    Dim kk As String
    kk = Application.GetOpenFilename("EXCEL (*.XLS), *.XLS", Title:="提示:请打开一个EXCEL文件:")
    msgbox kk

     

    打开zoom对话框
    Application.Dialogs(xlDialogZoom).Show

     

    激活字体对话框
    Application.Dialogs(xlDialogActiveCellFont).Show

     

    打开另存对话框
    Dim kk As String
    kk = Application.GetSaveAsFilename("excel (*.xls), *.xls")
    Workbooks.Open kk

     

    冻结窗口

    Range("A2").Select
    ActiveWindow.FreezePanes = True

     

    展开全文
  • Excel宏编程带举例.doc

    2013-05-27 16:02:33
    然后再点击"工具"下拉菜单中""下""的"编辑"选项即可打开刚才所录制的的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。对录制进行修改不仅可以学习的使用,还能大大简化的...
  • 纯干货一:基础操作首先,你需要「快速将excel上方菜单栏中的按钮浏览一遍」,最好能动手每个按钮按几遍。这能帮助你快速熟悉excel,了解excel具备哪些功能。其实大部分人对excel的功能并不熟悉,想要执行某些操作时...
  • 今天兰色要分享一个亮眼的Excel技巧:让Excel表格自动排序怎么自动排?...本技巧用到了两个VBA编程知识:录制和事件程序。别怕,你不用写代码,只需要简单2步,新手也可以轻松完成!跟兰色一起做吧:1、...
  • 文章来源:Excel精英培训今天兰色要分享一个亮眼的Excel技巧:让Excel表格自动排序怎么自动排?先看效果:兰色从网上下载的各大城市最新平均工资排行表当我改动其中一个城市的平均工资时,比如广州由7965改为10000,...
  • 我有一条生产流水线,理想情况下,配备足够的原材料、工人、资金...VBA是OFFICE应用的一种编程语言,其本质是语言;是由用户对规则或模式进行预定义的一系列的具体操作,其本质是指令/命令。此外,VBA主要应用于OF...
  • 有具体实例,可供速成.excel加上vba写的操作是非常有用的
  • 排序是EXCEL的一大功能,排序的作用远不止使数据时更直观清晰,其衍生的功能也是十分实用且高效。今天分享的技巧就是与排序相关的,学完了你才知道原来排序的作用比你想象中的还要强大!按行排序当需要排序的项目...
  • EXCEL宏编程纪念

    千次阅读 2007-06-10 23:52:00
    不久前被叫去编写宏,这EXCEL宏真是麻烦! 可能以后不会再遇到有编写宏的经历了,故而贴出来以做个纪念: Sub direct_Price()query_dir_volume宏由 颜清国编写,时间: 2007-4-9定义变量Dim cRows As Integer 总行数Dim...
  • 上回书说到,如何用EXCEL建立自己的工作台(导航与日志),有朋友说,自己的文件太多了,做起导航很费劲。别急,其实我们可以快速提取文件名,以便于我们批量建立超链接。延伸阅读:点墨楼:高效秘技!用EXCEL制作...
  • 先看大屏幕,我要演示的效果就是点击hello按钮...进入了编程界面,我们在中间输入MsgBox(“Hello World!”),代表弹出窗口显示里面的内容。 第三步 写完了我们先保存一下,会弹出一个对话框说让你是否继续保存为xl...
  • Sub 去重合并() arr = Worksheets("sheet1").Range("D1").Clear '选择D列作为存储列,保存最后去重合并的值 arr = Worksheets("sheet1").UsedRange Dim ARow As Long 'A列的行数 Dim BRow As Long 'B列的行数 ...
  • Excel本身就是一个可以编程的软件。只要你家里电脑上有Excel就可以轻松实现。不懂编程不要紧其实也很简单。大人只要稍微了解一下就可以实现和孩子体验什么是编程。不放试一试,省着孩子打“王者农药”!用Excel实现...
  • 搞定简单VBA编程 毕业后主要是维护公司的服务器,家具设计软件测试,维护,反...
  • 上节,我们讲到了Excel五大结构的range和value结构,也就是单元格和单元格属性。这节,我们开始分析worksheet结构。一、了解Worksheet引用方法在将之前,我们先录一个,测试一下。录制的内容,就是在sheet2工作...
  • ​如果你会录制word,能用它来一键调整表格格式,下面的内容就不用看啦!这个技巧你已经掌握了!对于小朋友来说,贴附注是特别花时间的事,尤其是对word格式的调整。这节内容,我将介绍一种方法,快速调整附注格式...
  • Excel之VBA简单宏编程

    万次阅读 多人点赞 2018-06-05 01:26:32
    Excel之VBA简单宏编程 excel是一款很经典的数据分析的工具,里面包含了很多内置函数,但实际情况有时却复杂得多,而excel宏编程提供了自定义函数的功能,正好有老师需要帮忙做一些数据分析,就学习了一下,下面是...
  • Excel VBA 宏编程入门

    2020-08-06 00:12:58
    《文科生也能学会的Excel VBA 宏编程入门》, 一起来围观吧 https://blog.csdn.net/liucc09/article/details/104605635
  • Excel 2000 VBA 范例 Excel 编程 excel自动运行 excel 应用
  • Excel VBA宏编程

    2019-02-14 11:59:39
    当文案小妹向你抱怨Excel函数不够用,某些特殊操作虽然简单但繁琐重复,那么。。。是时候展现真正的技术了   先推荐个比较好的文档 ...
  • Excel宏编程可以快速完成批量表格操作:复制粘贴、数据过滤等,宏代码基于VB语言实现,有基础的编程经验就能快速阅读。下面是我的学习笔记。1. Excel VBA编辑界面(Alt+F11)2. 输入代码方法:在VBE编辑器的代码模块中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 562
精华内容 224
关键字:

excel宏编程