Excel VBA宏编程
当文案小妹向你抱怨Excel函数不够用,某些特殊操作虽然简单但繁琐重复,那么。。。是时候展现真正的技术了
先推荐个比较好的文档
http://wenku.baidu.com/link?url=TWBeg6Am-XbRBEF-jnRdjyqFrkA9s66H51dm8gZLWZmFyv8r77pmP-hj-kkpSAm1OVToSxp3OWj6N_Yh_dIo8kMmvfy1WAnHD08SNWNAKnu
阉割版的年月日生成
Sub GetID()
Dim str As String
For I = 2 To 5001
str = Worksheets(1).Cells(I, 13)
Worksheets(1).Cells(I, 14) = Mid(str, 7, 4) + "年"
Worksheets(1).Cells(I, 15) = "'" + Mid(str, 11, 2) + "月" + Mid(str, 13, 2) + "日"
Next
End Sub
MID相当于C#中的sudString,字符串截取,参数含义也和c#中一样
Sub GetID()
Dim str As String
For I = 2 To 5001
str = Worksheets(4).Cells(Int((20 * Rnd) + 1), 1)
Worksheets(1).Cells(I, 25) = str
Next
End Sub
Int((20 * Rnd) + 1)相当于获取1-20之间的任意整数
Sub randName()
Dim randomIndex As Integer
Dim name As String
Dim id As String
Dim randomIndex2 As Integer
For i = 1 To 500
randomIndex = Int(1001 * Rnd + 2)
name = Worksheets(1).Cells(randomIndex, 3)
id = Worksheets(1).Cells(randomIndex, 2)
randomIndex2 = Int((5001 - 2001 + 1) * Rnd + 2001)
Worksheets(1).Cells(randomIndex2, 23) = name
Worksheets(1).Cells(randomIndex2, 24) = id
Next
End Sub
为了生成某个范围内的随机整数,可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
Sub Asd()
For I = 2 To 5001
Worksheets(1).Cells(I, 16) = Int(650 * Rnd + 50) * 100
Next
End Sub
随机某地车牌子
Sub awwa()
'temp用来随机,几种任意的车牌照组合,因为有最多两个字母一说、、、
Dim temp As Integer
Dim arr()
Dim arr2()
arr = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0")
arr2 = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
'车牌照五位
Dim a1 As String
Dim a2 As String
Dim a3 As String
Dim a4 As String
Dim a5 As String
For i = 2 To 5001
temp = Int(3 * Rnd + 1)
Select Case temp
'前两位有可能有字母
Case 1
a1 = arr(Int(35 * Rnd + 1))
a2 = arr2(Int(25 * Rnd + 1))
a3 = Int(9 * Rnd)
a4 = Int(9 * Rnd)
a5 = Int(9 * Rnd)
'2,4有可能为字母
Case 2
a1 = Int(9 * Rnd)
a2 = arr2(Int(25 * Rnd + 1))
a3 = Int(9 * Rnd)
a4 = arr(Int(35 * Rnd + 1))
a5 = Int(9 * Rnd)
'3,5可能为字母
Case 3
a1 = Int(9 * Rnd)
a2 = Int(9 * Rnd)
a3 = arr2(Int(25 * Rnd + 1))
a4 = Int(9 * Rnd)
a5 = arr(Int(35 * Rnd + 1))
End Select
Worksheets(1).Cells(i, 4) = "辽A" + a1 + a2 + a3 + a4 + a5
Next
'MsgBox arr(0)
End Sub
判断语句的写法
Sub asd()
If Worksheets(3).Cells(1, 6) = "" Then
MsgBox ("单元格为空")
Else
MsgBox ("单元格有值")
End If
End Sub
//==
Sub ss()
Dim mit As Integer
Dim ZooTemp As Integer
Dim R As Integer
mit = 1
zoomit = 0
zoomtemp = 1
Dim ZooIndex As Integer
Dim IBooIndex As Integer
ZooIndex = 1
IBooIndex = 1
For I = 0 To 199
R = Int(Rnd * 8 + 2)
zoomtemp = mit + R
For j = 1 To 10
mit = mit + 1
'MsgBox (Str(mit) & (" ") & Str(zoomtemp))
If (zoomtemp = mit) Then
'MsgBox ("已存入200人列表")
Worksheets(4).Cells(ZooIndex, 1) = Worksheets(3).Cells(mit, 1)
Worksheets(4).Cells(ZooIndex, 2) = Worksheets(3).Cells(mit, 2)
Worksheets(4).Cells(ZooIndex, 3) = Worksheets(3).Cells(mit, 3)
Worksheets(4).Cells(ZooIndex, 4) = Worksheets(3).Cells(mit, 4)
Worksheets(4).Cells(ZooIndex, 5) = Worksheets(3).Cells(mit, 5)
ZooIndex = ZooIndex + 1
Else
'MsgBox ("已存入1800人列表")
Worksheets(5).Cells(IBooIndex, 1) = Worksheets(3).Cells(mit, 1)
Worksheets(5).Cells(IBooIndex, 2) = Worksheets(3).Cells(mit, 2)
Worksheets(5).Cells(IBooIndex, 3) = Worksheets(3).Cells(mit, 3)
Worksheets(5).Cells(IBooIndex, 4) = Worksheets(3).Cells(mit, 4)
Worksheets(5).Cells(IBooIndex, 5) = Worksheets(3).Cells(mit, 5)
IBooIndex = IBooIndex + 1
End If
Next
Next
'MsgBox (Str(ZooIndex) & (" ") & Str(IBooIndex))
End Sub
//从5000里随机选2000个
Sub asd()
Dim r As Integer
r = 3
For i = 2 To 2001
r = Int(Rnd * 3 + 1) + r
Worksheets(3).Cells(i, 1) = Worksheets(2).Cells(r, 1)
Worksheets(3).Cells(i, 2) = Worksheets(2).Cells(r, 2)
Worksheets(3).Cells(i, 3) = Worksheets(2).Cells(r, 3)
Worksheets(3).Cells(i, 4) = Worksheets(2).Cells(r, 4)
Worksheets(3).Cells(i, 5) = Worksheets(2).Cells(r, 5)
Next
End Sub
Excel VBA宏编程相关推荐
- Excel VBA 宏自动创建表格
Excel VBA 宏 - 自动创建表格 应朋友的需求,编写了一个 VBA 宏,用于自动创建工作簿,实现了排版布局.冻结表头.条件格式.自动求和.单元格保护等功能. 分别创建了 4 个工作簿 1-12 ...
- Excel VBA高级编程 -自动去除重复项 自动求和
大家好,我是陈小虾,是一名自动化方向的IT民工.写博客是为了记录自己的学习过程,通过不断输出倒逼自己加速成长.但功能说明:由于水平有限,博客中难免会出现一些BUG,或者有更优方案恳请各位大佬不吝赐教! ...
- Excel VBA高级编程 - 根据关键字自动搜索,自动生成下拉菜单
关注微信公众号:万能的Excel,回复关键词[下拉菜单]获取Excel源文件 功能说明: 因为工作需要,每一次都要从SAP查找物料信息,手动生成物料清单(Boom表),繁琐且容易出错. 使用VBA实现 ...
- Excel VBA高级编程 - 根据关键词实时筛选,自动生成下拉菜单
关注公众号:万能的Excel 并回复[实时筛选]获取源文件! 功能说明: 当客户群体到达一定数量后,统计信息往往编程一项非常繁琐的工作.根据关键字自动搜索并且列出完整的信息编程一项必不可少的功 ...
- pywin32\win32com 运行 Word、Excel VBA宏最简单的方法
简单粗暴:doc.Application.Run('批处理VBA') 高手应该看懂了,看不懂的,看下面代码: from win32com.client import Dispatch# 打开Word软 ...
- jacob调用Excel VBA宏
1,下载jacob https://github.com/freemansoft/jacob-project 下载最新版即可 2,本地配置 下载完成后,会得到这几个文件 jacob.jar可引入工程供 ...
- Excel VBA高级编程 -根据日期查找数据
关注公众号:万能的Excel 并回复[日期搜索]获取源文件! 功能说明: 打印出货单的时候,经常会需要从数据库中查询一段时间内的所有数据 本工作表使用VBA实现了如下功能: 1.实时统计重复项 ...
- Excel VBA 高级编程-来自直男的Excel表白
关注公众号:万能的Excel 并回复[表白]获取源文件! 七夕快到了,想用另类的表白方式,奈何自己不懂编程?那我就叫你如何用Excel 表白吧! 功能说明: 1.自动播放想说的话 2.用数学公 ...
- Excel VBA高级编程-SQL检索(二)合并相同项并求和
大家好,我是陈小虾,是一名自动化方向的IT民工.写博客是为了记录自己的学习过程,通过不断输出倒逼自己加速成长.但功能说明:由于水平有限,博客中难免会出现一些BUG,或者有更优方案恳请各位大佬不吝赐教! ...
- Excel VBA 高级编程-跨表格多条件筛选
大家好,我是陈小虾,是一名自动化方向的IT民工.写博客是为了记录自己的学习过程,通过不断输出倒逼自己加速成长.但由于水平有限,博客中难免会出现一些BUG,或者有更优方案恳请各位大佬不吝赐教!微信公众号 ...
最新文章
- 阿里的御用框架,它非常牛啤!不服不行!
- C 语言中double类型数据占字节数为,C 语言中 double 类型数据占字节数为_____
- 游戏运营期间我的项目开发经验总结——纪律性和卡顿处理
- Android Studio生成aar包的方法以及解压aar包的方法
- 【翻译】WPF中的数据绑定表达式
- CVPR2014: DeepID解读
- 使用SQL编程创建100万条数据测试索引
- java api1.8中文版(由谷歌,百度,有道,必应翻译)
- 北理珠计算机学院学生会,梦回北理
- 快用苹果助手安装失败_穿越火线辅助腾讯手游助手常见问题汇总
- Java课程设计题目七:魔板游戏
- 魅蓝3卡插上显示无服务器,给魅蓝3插卡的方法步骤 _ 路由器设置|192.168.1.1|无线路由器设置|192.168.0.1 - 路饭网...
- office2016 使用KMS破解无法连接服务器
- 领域建模——架构设计的第一步(上)
- XLS调色面板HSSFPalette
- 【SQL】SQL安装卸载问题的解决。SQL简直剧毒无比好吧。。。
- jsp+mysql管理系统_JSP+MySQL实验室设备信息管理系统
- 计算从今天算起,100天以后是几月几号
- 吃鸡专用计算机,如何给雷神五代新911耀武九代i7游戏本电脑重新安装吃鸡win10专用系统...
- 计算机导论基础论文3000字,计算机导论课论文3000字(2)