
VBA
OYQ697
这个作者很懒,什么都没留下…
展开
-
VBA-字典与数组实现去重
在实际操作中有太多的数据需要去重仅保留一条记录,在这里自己写了两个函数,测试OK,需要可以自己稍微改动就可以使用啦。1.两个数据源合并,仅取第一次出现的数据,具体代码如下,因为注释比较详细,在这里就不过多的说明,需要注意一点的是,我这里使用的数据,去重列是第二列,所以我将字典转换成数组时,是将数组的第2列等于字典的key值,为保持数据结构一致,方便循环操作。'合并去重,将数据源1和数据源2合并去重保存在数组里,arr0是用来指定去重列和保留列,使用时仅限在两个数组结构一致的情况下使用。Funct原创 2020-12-05 19:14:35 · 3415 阅读 · 0 评论 -
VBA-文件操作类自定义函数
1.最近对Excel文件使用较为频繁,故写了几个函数,通过调用可以实现一些基本功能,仅供参考:(1)遍历指定文件夹下所有文件,并获得文件名(如需要获得指定的文件类型,请增加一个判断条件来判断文件类型)Function get_filenamelist(rootpath As String) As CollectionDim fnameDim namelist As New Collectionfname = Dir(rootpath, vbDirectory)Do While fname原创 2020-08-17 22:06:01 · 921 阅读 · 0 评论 -
VBA-批量数据分类
1.近期做了一个将总表数据按一定的分类规则来拆分成几个分表的自动表格,数据源不便公布,在这里只发布代码,仅供参考:Sub classfication() Dim w0 As Workbook Dim w1 As Workbook Dim sheet1 As Worksheet Dim r0 As Range Dim r1 As Range Dim filename As String Dim rw() Dim arr1() Dim原创 2020-06-07 15:58:26 · 1175 阅读 · 0 评论 -
VBA-DIR函数(文件自动归档)
1.今天用dir函数做了一个自动将文件归档的程序,我们一起来看看效果,首先,文件夹里面的文件名称如下图所示,我们可以看到所有的文件名(除我们写VBA代码的表格)都符合2020.xx.xx.xlsx的格式2.我们要做的是将同一月份的表格放到一个文件夹里,当我们运行代码就会得到以下两张图的结果,所有文件都被放到对应月份的文件夹里3.接下来,看看我们如何实现吧,具体代码如下(由于注释较详细,这里就不过多说明)Sub autotest()'定义变量(文件名+集合(收集文件名名称集合))原创 2020-05-09 17:54:37 · 1831 阅读 · 0 评论 -
VBA-自动筛选符合条件的数据
1.效果图如下2.我们可以看到符合条件---即入住日期刚好满7天的数据信息被筛选出来3.代码如下Option ExplicitDim w0 As WorkbookDim book0 As WorksheetDim book1 As WorksheetDim r0 As RangeDim r1 As RangeSub 自动筛选符合条件的信息()Set w0 = Act...原创 2020-03-09 20:20:11 · 14417 阅读 · 0 评论 -
VBA-正则表达式来获取网上数据
以猫眼电影为例1,我们要获得猫眼电影榜单的好看的电影信息,影片名称,主演,以及观看和购票链接,获取后效果如下图所示2.不难看出,我们只需要通过观察网页源代码,然后进行整合提取关键信息,在用正则表达式来截取想要的信息就可以对应的获取相应的信息,具体的代码及解释如下Option Explicit'获取猫眼电影榜单信息Sub getdy() Cells.Clear ...原创 2018-08-09 09:47:54 · 2041 阅读 · 0 评论 -
VBA-选择文件
Option ExplicitSub 打开文件()Dim fileNameObj As Variant Dim aFile As Variant '数组,提取文件名fileName时使用 '打开文件对话框返回的文件名,是一个全路径文件名,其值也可能是False,因此类型为Variant Dim filename As String Dim ful...原创 2018-08-04 11:26:07 · 4255 阅读 · 0 评论 -
VBA-将数据分页显示(listview)
1.首先我们来看一下分页显示的效果2.要想作出分页的效果,必须要用listview控件实现,一般来说在窗体工具箱中并没有这个控件,所以我们要自己添加,打开窗体工具箱,在空白处右键-->附加控件-->选择microsoft listview control,version 6.0-->确定就好了,其使用方法和其他控件的使用方法是一样的,拖动到窗口就可以使用了3.首先...原创 2018-07-27 11:01:28 · 7338 阅读 · 1 评论 -
VBA-获取网上的资源
用代码实现下载文件,如图片等小文件,如果是大文件的话,速度太慢,不建议用此类方法具体的实现代码如下Option ExplicitPublic Function getimage() Dim strurl As String strurl = "http://p5.so.qhimgs1.com/t0161ac92c369a8cefb.jpg" '下载网址 Dim ...原创 2018-07-21 19:42:55 · 1674 阅读 · 0 评论 -
VBA-access表信息的获取
1.首先我们来直接获取某个数据库的所有表信息Sub 获取数据库中所有表的名称和类型() Dim i As String Dim mydata As String Dim con As New ADODB.Connection Dim rs As New ADODB.Recordset mydata = ThisWorkbook.Path & "...原创 2018-07-31 16:10:25 · 6035 阅读 · 1 评论 -
VBA-数据库创建,数据表创建
1.首先我们要判断数据库是否存在,需要引用一个类“Microsoft ADO Ext.6.0 for DDL and Security”,用其catalog 对象来判断数据库是否存在,如果不存在,直接创建数据库和数据表,如果存在则删除Option ExplicitSub shifuchunzai() Dim con As New ADODB.Connection Dim m...原创 2018-07-28 10:30:38 · 7362 阅读 · 0 评论 -
VBA-判断数据表是否存在(openschema)
1.首先我们可以学习一下错误捕捉,当数据表不存在的时候,删除数据表就会出现错误,此时就会有错误记录,我们就可以利用本地窗口看到错误的信息Sub 错误捕捉() Dim mydata As String Dim mytable As String Dim con As New ADODB.Connection mydata = ThisWorkbook.Path ...原创 2018-07-28 11:34:10 · 4864 阅读 · 2 评论 -
VBA-合并多个工作簿
1.首先我们理清思路,我们将所有要合并到一起的Excel工作簿放到一个文件夹里,该文件夹里面有一个启用宏的工作表,启动该工作表的宏,就可以将该文件夹里面的所有Excel文件的内容合并到一张表里面,后面可以将合并完成后的数据复制或剪切到新的Excel表中。2.代码如下Sub 合并目录所有工作簿全部工作表()Dim MP, MN, AW, Wbn, wnDim Wb As Workb...原创 2019-06-14 15:54:28 · 19560 阅读 · 5 评论 -
VBA-(e健代收)计算代收费用
1.用网抓的方法进行计算费用,首先得创建连接,将所含的参数传入请求,等待响应后将结果取出(split)Option ExplicitFunction mytotal(c, k, g, Z) '根据长款高重量来计算代收费用 Dim strtext As String Dim strurl As String '创建请求对象 strurl = "http://w...原创 2018-08-11 11:24:37 · 701 阅读 · 0 评论 -
vba-网络抓取(get,post)
1.网络抓取有很多种方法,处理也有很多种方法,以下提供一些代码,仅供参考(1)GET获取数据Option Explicit'以快递一百查询快递单号为例'用fiddler 来查看自己想要的链接等信息'GET请求获取数据Public Sub testkuaidi() Dim xmlhttp As Object Set xmlhttp = CreateObject("M...原创 2018-07-21 10:20:21 · 26985 阅读 · 11 评论 -
VBA-基本的文件操作语句与文件加密(加密dog)
1.基本的文件操作,如重命名,移动,删除,新建,文件大小,具体代码如下所示Option Explicit Sub 演示() Dim strpath As String, filename As String strpath = ThisWorkbook.path & "\" 'filename = "text.txt" 'MsgBox FileLen(strpath & f...原创 2018-07-15 10:51:08 · 2387 阅读 · 0 评论 -
vba-access 数据库连接,增,删,改,查
Option ExplicitSub 数据库连接()'告诉电脑,我们要有ado,引用ado'创建连接对象'给对象取名字Dim con As ADODB.Connection '声明对象变量'创建对象变量并赋值Set con = New ADODB.Connection'建立数据库的连接'dim con as new adodb.connection'con.Open "provider=micro...原创 2018-06-26 09:35:13 · 19753 阅读 · 1 评论 -
VBA--XML文件的读取与输出
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows, Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。下面我们来学习一下用VBA如何读取XML文件和输出XML文件1....原创 2018-07-09 13:08:30 · 18256 阅读 · 0 评论 -
VBA-XML的信息提取
1,现有一个XML文件,里面是图书信息,图书的信息由节点保存,内容如下2.将信息提取出来后的效果如下图所示3.完整代码和解释如下Option ExplicitSub 读取XML节点()'后期绑定'Dim xdoc As Object'Set xdoc = CreateObject("MSXML2.DOMDocument")'前期绑定Dim xdoc As New DOMDocument60 '声明...原创 2018-07-02 17:09:52 · 2928 阅读 · 0 评论 -
VBA-数据库查询实例
1.首先我们得做一个窗体,其布局和运行效果如下2.我们要理清思路,首先窗体在运行时就应该将部门加载进去,并且将重复的部门剔除掉Private Sub UserForm_Initialize()Set con = New ADODB.ConnectionWith con.Provider = "microsoft.ace.oledb.12.0".ConnectionString...转载 2018-07-23 11:23:09 · 9317 阅读 · 0 评论 -
VBA-组合框联动(通过XML进行文件传输)
我们知道,用XML文件传输文件有很多好处,现在我们来做一个简单的小程序--一个省对应它的市在列表中显示出来首先我们得制作一个窗体,具体布局如下图首先我们得有一些基本信息,省市的基本信息然后我们制作一个窗体,布局如运行效果图所示,其次我们得写两个函数,一个是读取XML文件的函数,将XML文件中(市)读取出来,一个是生成XML文件,将Excel表中的内容保存为XML文件(一个省对应一个XML文件),对...原创 2018-07-11 19:50:12 · 758 阅读 · 0 评论 -
VBA--类与对象的简单理解
1.首先我们打开VBA编程的界面,在工程资源管理器中右键添加类模块,并且命名为person,这样我们就创建了一个类2.接下来,我们要在类里面填加字段来保存内容,最好使用的是private,如果使用public所保存的内容就没有约束性Private sname As String '姓名Private sgender As String '性别Private sage As String '年龄3....原创 2018-07-11 20:07:23 · 9310 阅读 · 0 评论 -
VBA--用类实现组合框联动
1.首先,我们要创建一个类,即添加类模板,记得更改名字,并且在里面添加相应的字段,并且对其字段和对象进行属性约束,其具体代码如下:Option ExplicitPrivate sprovince As StringPrivate scity As Object'属性:省Property Let province(pro As String) sprovince = proEnd Proper...原创 2018-07-12 11:36:47 · 3776 阅读 · 0 评论 -
VBA-用类实现数组扩容
我们知道数组的长度是固定的,定义了以后不能随意的增加其长度,但是我们可以用类来实现表面上的扩容(即增加数组的存储空间)1.首先我们添加一个类模块,取名为”myarr”并且在里面添加一些方法(比如扩容,查看数组值等)具体代码如下:Option ExplicitPrivate arr() As String '数组 ,用来存储数据Private ilen As Integer '数组长度Private...原创 2018-07-13 09:34:49 · 3175 阅读 · 0 评论 -
VBA-批量删除文本框内容(用类实现)
1.首先,我们创建一个类,类里面包含控件个数,并且有相应的方法,具体代码如下Option ExplicitPrivate arr() As MSForms.TextBoxPrivate count As Integer '控件个数'获得文本框个数,将文本框存入数组Sub addcontrol(con As MSForms.TextBox) count = count + 1 ReDim...原创 2018-07-13 11:11:06 · 6705 阅读 · 3 评论 -
VBA-简单抓取网络数据
1.在Excel中如果能够直接获取网上的数据,是非常便利的,于是在这里以获取标题和链接为例,来介绍一下用VBA实现网络抓取效果如下图所示2.如何实现,具体代码和解释如下Option ExplicitPublic Sub getlist()'将单元格内容清空[a:b].ClearContents'定义网址 Dim strurl As String strur...原创 2018-07-19 10:14:03 · 28163 阅读 · 12 评论 -
VBA-正则表达式
1.写好正则表达式,在数据截取处理中是十分有优势的,以下举几个例子来学习一下正则表达式的用法Option ExplicitPublic Function getnum2(str As String)With CreateObject("VBScript.RegExp") .Global = False '全局匹配 .Pattern = "\d+" '正则表达式,匹配数字...原创 2018-07-19 19:37:23 · 9395 阅读 · 1 评论 -
VBA-文件的基本操作(及将文件操作封装成类)
1.首先我们来学习一下基本的文件操作(1)写入代码 Sub print写入() 'Open ThisWorkbook.Path & "\text.txt" For Append As #1'追加写入 Open ThisWorkbook.path & "\text.txt" For Output As #1 '写入的文件每次会被覆盖 Print #1, "谭...原创 2018-07-14 17:35:17 · 6611 阅读 · 0 评论 -
VBA-二进制文件的读取(仅限小文件)
Sub 二进制读取() Dim filename As String filename = ThisWorkbook.path & "\text.txt" Open filename For Binary As #1 '打开文件,可以对文件进行读写操作 Dim chs() As Byte, i As Integer, k As Integer For ...原创 2018-07-15 10:02:23 · 6949 阅读 · 0 评论 -
VBA-一些查询实例(access)
Option ExplicitSub chanxun() Dim con As New ADODB.Connection '声明并创建连接对象 Dim rs As New ADODB.Recordset '声明并创建记录集对象 con.Open "provider=microsoft.ace.oledb.12.0;data source=" &...原创 2018-07-26 08:43:06 · 13403 阅读 · 0 评论 -
VBA-如何用代码打开工作簿
1.代码很简单,只要把文件路径写清楚就好了Option ExplicitSub 打开工作表()Dim wb As WorkbookSet wb = Workbooks.Open("C:/Users/oyq/Desktop/作业/工作簿1.xlsx")End Sub2.其他的工作簿操作Sub 其他作业()Dim w As Workbook'新建工作表 Set w = Workbooks.Add ...原创 2018-05-21 20:19:28 · 24190 阅读 · 0 评论