
VBA
w_dexu
专注office办公自动化,EXCEL模版、函数订制,二次开发,WORD排版,管理系统订制开发,当然还有耐心的咨询服务!
专注工作二十余年,值得你的期待!
展开
-
ListView控件数据操作——给ListView中的列数据求和
ListView控件数据操作五、给ListView中的列数据求和LIstView显示数据完成后,一般情况下还需要在最后一行对某些列做一个汇总,下面的函数就很好的完成了这个功能。函数代码给ListView添加数据,数据可以为数组或单行数据(逗号分隔)Public Function SumLvCol(列表 As Object, 列表列, Optional WriLv As Boolean = False, Optional 分组 = Null)Dim i As IntegerDim j As In原创 2022-05-09 19:07:18 · 1093 阅读 · 0 评论 -
ListView控件数据操作——修改列表的显示
ListView控件数据操作四、修改列表的显示ListView显示的数据中,有一些特征的内容需要突出显示,以方便查看,增加程序的使用性。下面的代码对显示的数据的正负数进行了格式化操作,可以设置负数的显示颜色和0的显示代号。函数代码下面的函数仅是举个例子,给出思路,大家可以根据自己的需要进行其它方面的尝试。Sub FormatLv(Lv As Object, Optional RepO As String = "", Optional MinusColor As Single = vbRed)Wi原创 2022-01-22 10:07:42 · 804 阅读 · 0 评论 -
ListView控件数据操作——取得列表中的某列某行的数据
ListView控件数据操作三、取得列表中的某列某行的数据在使用ListView完成数据显示时,还需要得到其中的部分数据,以便实现交互式操作,下面的函数,可以实现这一功能。函数代码取得指定的ListView控件的某一列某一行的数据,支持字段名和列号,支持多字段。Public Function GetLvData(Lv As Object, Optional Fies, Optional RowNum As Integer = 0)Dim sp() As StringDim i As Integ原创 2021-07-22 14:21:20 · 3611 阅读 · 1 评论 -
ListView控件数据操作——添加表头和数据
ListView控件数据操作一、添加表头和数据在窗口显示数据时,经常会用到ListView这个控件,虽然也可以使用ListBox,但其功能还是比较弱一些,ListView相对用起来更顺手一些。下面的两个函数是给控件添加表头和数据的函数,贴出来供大家参考。函数代码给ListView添加数据,数据可以为数组或单行数据(逗号分隔)Public Sub AddListViewData(ListViewName As Object, DateArr, Optional Header As Integer =原创 2021-03-09 20:46:21 · 4611 阅读 · 0 评论 -
ListView控件数据操作——通过代码在窗体上添加控件
ListView控件数据操作二、通过代码在窗体上添加控件ListView控件在不同电脑里的版本不是完全一致的,经常会因为版本不同,导致窗体上的控件不能使用,如果能够实现在窗口加载时自动添加控件,就要很好的解决这个问题。下面的代码就可以实现这个功能,可以很方便的在窗口设计时使用。函数代码给ListView添加数据,数据可以为数组或单行数据(逗号分隔)ListView控件数据操作系列未完,待续!——专注办公软件的二次开发及培训,你有问题,我有思路!——微博、微信、优快云同号:w_dexu。原创 2021-03-08 20:01:25 · 1281 阅读 · 0 评论 -
判断Excel表格是不已经打开
判断Excel表格是不已经打开在通过VBA代码打开或是关闭文件时,需要判断文件是否已经打开,以便做出适当的操作,避免已打开的文件被误保存,下面的代码主要用来确认文件是否已的打。函数代码Function SheetIsExist(strExcleName As String, strSheetName As String) As Boolean '//判断名称的工作表是否已经在指定的Excel文件中存在Dim shtSheet As Worksheet SheetIsExist = False原创 2021-02-24 13:56:52 · 1250 阅读 · 0 评论 -
表格操作系列——取得表格某一列不重复的内容
表格操作系列八、对表格或数组进行或列求和函数代码代码数据表样子调用例子代码表格操作系列未完,待续!——专注办公软件的二次开发及培训,你有问题,我有思路!——微博、微信、优快云同号:w_dexu。——转载请注明出处!扫码加微信...原创 2020-08-15 20:08:46 · 748 阅读 · 0 评论 -
表格操作系列——取得单元格偏置数据
表格操作系列六、对表格或数组进行或列求和在做报表时,经常会需要对取得的数据进行行或列的求和汇总操作,下面的代码可以完成对数组的行或列的求和操作,也适用于对格的指定区域进行求和汇总。函数代码代码数据表样子调用例子代码表格操作系列未完,待续!——专注办公软件的二次开发及培训,你有问题,我有思路!——微博、微信、优快云同号:w_dexu。——转载请注明出处!扫码加微信...原创 2020-08-14 20:02:16 · 363 阅读 · 0 评论 -
表格操作系列——取得表格指定名称列的全部数据
表格操作系列六、取得表格指定名称列的全部数据下面的代码,可以实现对表格整列数据的提取,也可以仿造此原理实现整行数据的提取。列名称需要在第一行,支持使用列名字母或是首行标题名引用列。函数代码Public Function GetColumnByFie(Fie As String, Optional sh As String = "当前表") As Variant'取得某一列的数据Dim col As String'On Error GoTo errIf sh = "当前表" Or sh =原创 2020-08-13 11:23:19 · 1395 阅读 · 0 评论 -
表格操作系列——对表格或数组进行行或列求和汇总
表格操作系列五、对表格或数组进行或列求和在做报表时,经常会需要对取得的数据进行行或列的求和汇总操作,下面的代码可以完成对数组的行或列的求和操作,也适用于对格的指定区域进行求和汇总。函数代码Public Function SumArrRow(Arr, 列, Optional WithArr As Boolean = True)'默认带数组数据Dim i As IntegerDim j As IntegerDim sp() As StringDim dic As ObjectDim LB A原创 2020-08-12 12:03:57 · 777 阅读 · 0 评论 -
表格操作系列——字段名与字段别名的获取
表格操作系列四、字段名与字段别名的获取在使用数据库编程时,经常需要在别名与字段名之间做一些操作,字段名一般使用英文字符,别名一般使用中文字符,这样就可以满足显示与数据库操作两不误的需要。但是在写代码时,使用别名,数据库又不认,使用字段名写代码又不太方便,两者兼顾时容易出错。下面的代码,可以很好的实现字段名与别名之间的操作。将字段名与别名存储在一个表中,按列存好,可以在编程时先行定义,这样也可以避免在使用时出现混乱。在写代码时,可以使用别名对字段名进行自动引用,具体见以下函数。单字段操作Public原创 2020-08-11 08:52:11 · 1934 阅读 · 0 评论 -
表格操作系列——在配置文件中获取变量初始值
表格操作系列三、在配置表中获取变量初始值在程序启动时,需要初始化一些参数,或是在执行过程中,取得一些变量或是字段的配置参数。这些数据可能存储在某一个表中,为了能够方便的获取这些数据,编制了下面的这个函数,可以很方便的取得初始值。函数代码Public Function GetFiesVal(Fies As String, Optional Sh As String = "INI", Optional FiesColName As String = "字段", Optional ValColName A原创 2020-08-10 13:34:24 · 347 阅读 · 0 评论 -
表格操作系列——在指字的区域内增加或删除行不影响排版
表格操作系列二、在指定的区域内添加行或删除行在一些表格操作中,已经画好了每页的表格,并且做好了设定,可以实现每一页的页面下好打印在一个整页里,这就需要在编辑时的增加或是删除行时,不破坏原有的排版设置,可以实现内容的移动,而非表格的变化,下面的函数即可以实现这一功能。样例是一个工艺过程卡片的例子,有固定的表格,只需要在使用时添加内容即可,使用下面的代码进行增加或删除行时,不会影响编制等最后一行的位置,避免设置好的页面发生变化。以下代码仅提供一些思路,可以根据自己的表格样子,做适当调整,以满足编辑要求。原创 2020-08-09 09:32:52 · 635 阅读 · 0 评论 -
表格操作系列——利用字段名获取表格中对应列的数据
表格操作系列一、利用字段名获取表格中对应列的数据在利用VBA操作表格时,经常需要提取其中的某些数据,为了能够轻松完成操作和,而不用每次都写复杂的代码,编制了下面的函数,支持单列的字段名和列号,以及多列的字段名来获取相应的数据,可以方便的使用。函数代码Public Function GetSheetDatas(Fie, Optional WithFie As Boolean = False, Optional Sh As String = "ActiveSheet")Dim Rng As Range原创 2020-08-08 12:35:02 · 2653 阅读 · 0 评论 -
将连续数字串转换为日期的函数
将连续数字串转换为日期的函数在日常的工作中,经常需要输入日期,一个典型的作法就是按部就班的按日期的格式输入,但是,如果程序只能接受这样的输入是不是太LOW了,为了能够应对大量的日期输入,下面给出我之前做的一个可以接受连续数字串,自动转换为日期的函数,供大家参考、交流。连续输入4~8位数字字串,如果没有歧义,函数则会按相应的规格转换为日期字串并返回。Public Function NumToDate(DateStr As String) As String '数字串转日期Select Case Len原创 2020-08-07 22:20:55 · 2840 阅读 · 0 评论 -
计算表达式的函数
计算表达式的函数为了能够接受用户以表达式的形式输入的数据,今天给出两个函数,可以解决这个问题。思路是先将表达式中可能存在的双角字符代替成半角字符,再调用系统的表达式计算函数做计算,以下两个函数可以自行试用。Function JS(表达式 As String) 表达式 = Replace(表达式, "+", "+") 表达式 = Replace(表达式, "-", "-") 表达式 = Replace(表达式, "×", "*") 表达式 = Replace(表达式, "÷原创 2020-08-06 23:36:58 · 812 阅读 · 0 评论 -
按用户名决定列的隐藏与显示
按用户名决定列的隐藏与显示表格中录入以下数据确定按钮代码如下前几天,发一了个使用隐隐藏来做权限管理的例子,今天给出一个精简版的,供大家参考。表格中录入以下数据B1单元格利用有效性增加下拉列表,为用户名,B2单元格为待输入的密码。EFG三列为配置的基础数据,输入密码正确后,隐藏列中的几列就会隐藏。B5单元格取出了电脑用户名,有兴趣的人可以按此用户名为直接确定B1单元格的用户。确定按钮代码如下Sub 确定()Dim cols() As String ActiveSheet.Unprot原创 2020-08-03 10:24:05 · 269 阅读 · 0 评论 -
判断Excel单元格是否处于编辑状态
判断Excel单元格是否处于编辑状态以下是平时收集到的一个判断表格单元格是否处理编辑状态的代码,记不住是从哪弄的,转给大家,供学习参考。'//取得类名Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long'//设置钩子函数Public Decla原创 2020-08-02 09:27:23 · 1791 阅读 · 0 评论 -
单击表格中的图片放大显示再次单击或是单击其它图片复原
单击表格中的图片放大显示再次单击或是单击其它图片复原需求表格中原始图片样子单击图片后表格及图片的样子实现的原理样例文件需求当表格中需要插入多张图片后,如查图片太大,不利于排版,太小查看时又不方便浏览,如果可以实现按行插入图片,需要查看图片时,自动将图片放大若干倍显示,再次点击或是点击其它图片时,图片自动复原,会比较方便,实现了排版与浏览效果的兼得。下面介绍一下实现这一需求的基本原理。表格中原始图片样子单击图片后表格及图片的样子实现的原理一、表格打开进,遍历图片,将各个图片加上一个OnActi原创 2020-08-01 11:37:04 · 2702 阅读 · 2 评论 -
到底要不要在office/wps平台上做开发
到底要不要在office/wps平台上做使用officer/wps软件做办公二十多年了,从最开始只是做文档,画个表格,到逐渐做起二次开发,写个自定义函数,做个小系统什么的,到现在还给别人做了几个ERP的外挂查询。自己感觉会写点代码真好,感觉真正开始可以让电脑为自己干活了,原来被动地使用软件的即定功能,只能算是电脑的奴隶。最开始有一点VB的基础,逐渐入手到了VBA上,用中学,学中用,随着使用的增多,感觉越来越方便,VBA的功能很是强大,使用也比较方便。很多功能都想在EXCEL/WPS中做一做,但是在开原创 2020-07-31 12:27:13 · 896 阅读 · 0 评论 -
常用的关于表格的属性和函数
常用的关于表格的属性和函数定制模块行为(1) Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Option Compare Text '字符串不区分大小写 Option Base 1 '指定数组的第一个下标为1(2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息(3) On Error GoTo Error...转载 2020-07-31 10:05:15 · 981 阅读 · 0 评论 -
执行正则表达式的函数
执行正则表达式的函数使用函数来执行正则表达式,方便字符串处理函数代码使用函数来执行正则表达式,方便字符串处理在正常的编程中,需要大量的处理字符串,特别是对输入的内容进行校验,如密码,身份证号,电话号码等,还有时需要在字符串中进行查找和替换,特别是模糊查找时,使用正则表达示来做会起到事半功倍的效率,下面提供一个函数,可以用于解析正则表达式,返回处理后的结果。函数代码Function ExecExStr(源字符串 As String, 正则表达式 As String, Optional 替换字符串 As原创 2020-06-29 21:52:27 · 478 阅读 · 0 评论 -
在表格中显示形位公差符号
在表格中显示形位公差符号需求效果自动实现代码需求有的时候,需要在表格中或是在文档中显示机械制图方面的形位公差符号,实现这些特殊符号的良好显示并不是一件容易的事,有时使用图片插入,操作麻烦,显示效果不了是很好。下文介绍了如何在表格中实现形位公差符号的显示,并且可以使用宏代码来实现辅助输入。效果下面这个图片即是显示的效果,使用了GDT这个字体后,输入正常的小写英文字母,即会出现各种形位公差符号。一般来讲,安装AutoCAD后,电脑中都会有这个字体。自动实现现在有一个问题,就是如何出现A1单元格中的原创 2020-07-28 14:18:59 · 4413 阅读 · 0 评论 -
自定义函数实现表格内汉字与非汉字混合内容的拆分
自定义函数实现表格内汉字与非汉字混合内容的拆分需求函数使用例子函数参数说明需求工作中经常会遇到到将名称与规格,或是姓名与电话号码,或是规格型号与单位名称等两种内容写到一个单元格里的情况,数据处理起来非常不方便。本人针对此种情况,自定义了一个函数,写在加载宏里,加载后,即可以在任意工作表中,使用分列公式(“=分列(A1,“汉字”,1,1,1)”),实现模糊分列,支持多个自定义的分列字符或符号,也可以默认为汉字与非汉字,有多个选项。支持数组公式或是普通公式,除了在EXCEL或是WPS中使用外,还可以将函原创 2020-07-26 16:25:13 · 356 阅读 · 0 评论 -
VBA获取汉字拼音首字母的函数
汉字转拼单首字母现在各种查询中,一般都支持拼音首字母查询,下面的函数可以获得汉字的首字母。Public Function PY(myStr)Dim Str$, L$, Temp$, 特殊字$Str = Replace(Replace(myStr, " ", ""), " ", "")dict = [{"吖","a";"八","b";"擦","c";"咑","d";"鵽","e";"发","f";"伽","g";"哈","h";"丌","j";"咔","k";"垃","l";"妈","m";"拿",原创 2020-07-17 23:37:36 · 4967 阅读 · 0 评论 -
根据点选单元格自动设定冻结窗格位置
根据点选单元格位置,自动设定冻结窗格位置函数代码部分时候需要表格中的不同部分内容实现滚动,而另一部分不动,并且会根据需要自动调整滚动和固定的位置,下面的代码可以实现点选不同的行时,实现不同的滚动范围,有兴趣的可以进行试用,并根据自己的需求,调整其中固定/滚动的位置。函数代码Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim rng As RangeApplication.EnableEvents = False'Appl原创 2020-07-16 21:34:45 · 242 阅读 · 0 评论 -
利用打印事件实现打印表格受控签字盖章
模拟打印事件实现打印前后处理页面变量声名工作表打印函数在有一些页面的打印时,需要根据页面内容做一些签字、盖章等体现审批、权限的操作,这些东西不希望公开给操作的人员,仅由系统根据数据状态进行处理,下面的函数即可以实现在打印前显示图片,打印后又隐藏的操作,也可以修改某一单元格中打印和显示的内容。变量声名'在模块中声名全局变量Public isRealPrint As Boolean工作表打印函数Private Sub Workbook_BeforePrint(Cancel As Boolean)原创 2020-07-15 19:41:54 · 426 阅读 · 0 评论 -
金额大写转换的函数
金额大写转换以下函数用于金额大写转换,可以收藏备用Public Function 大写转换(Amountin) '数值转汉字元角分 Application.Volatile On Error Resume Next 大写转换= Replace(Application.Text(Round(Amountin + 0.00000001, 2), "[DBnum2]"), ".", "元") 大写转换= IIf(Left(Right(大写转换, 3), 1) = "元", Le原创 2020-07-14 22:25:09 · 1390 阅读 · 0 评论 -
给VBA窗体增加最大化、最小化窗体按钮
给VBA窗体增加最大化、最小化窗体按钮调用方法函数代码窗体例子VBA窗体默认只有一个关闭按钮,没有最大化和最小化按钮,下面的代码可以方便的为窗体增加最大、最小化按钮,让窗口使用更方便。调用方法窗体最大最小化 Me窗体最大化 Me函数代码'窗体的最大最小化Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As LongPublic Declare Funct原创 2020-07-13 21:05:56 · 5554 阅读 · 2 评论 -
读写配置文件的函数,适用于表格做的配置文件
读写配置文件的函数函数代码调用的例子配置表的例子日常编程过程中,经常需要将一些参数或是客户设定的内容,放到配置文件中,在程序执行过程中,查以查找这些配置,以便完成参数化的操作。下面的函数即是为了方便的读、写配置表中的各项内容而写的,可以从表格中快速的找到相关内容进行读取或写入的操作。具体见以下程序代码:函数代码Public Function GetINIData(DataFie As String, Optional FiePos As String = "ByCol", Optional Sh As原创 2020-07-10 22:14:35 · 518 阅读 · 0 评论 -
度分秒转换函数
度分秒转换函数调用例子度分秒转度度转度分秒调用例子也可以用于小时、分钟、秒的转换,但中间的分隔符只能是一位MsgBox DToDMS(1.51, "度分秒")MsgBox DMSToD("12度3分4秒")MsgBox DMSToD("12h3m4.56s")MsgBox DMSToD("12°3'4"")度分秒转度支持度分秒之间使用任意非数字字符分隔,支持度分秒中存在小数Function DMStoD(DMS As String)Dim sp(2) As SingleDim i A原创 2020-07-09 23:57:53 · 1605 阅读 · 0 评论 -
利用列的自动隐藏实现不同列浏览权限自动设置
利用列的自动隐藏实现不同列浏览权限自动设置需求实现思路及方案主要界面需求表格中的某些列的内容属于保密内容,但表格又要放到公共区供不同人员浏览,需要对列设置权限,确保即能够共享信息,又能保护保密内容实现思路及方案表格有隐藏列的功能,可以对不同人员浏览时,设置不同的列的隐藏,来避免保密信息被浏览通过对表格进行保护(禁止设置列的格式),防止手工去除列的隐藏通过设置登录用户的方法,来区别不同人员的查看、编辑权限通过使用配置表的方法,实现对不同表,不同列的权限设置对管理员设置最高权限,可以实现无限制地原创 2020-07-08 20:50:37 · 827 阅读 · 0 评论 -
将图片控件中的图片保存为图片文件BMP、JPG、PNG、GIF、TIFF
将图片控件中的图片保存为图片文件调用例子函数例子本例函数可以将图片控件中的图片,保存为多种图片文件格式,调用例子Dim FlName As StringFlName = Application.GetSaveAsFilename("二维码图片_" & Format(Now(), "yyyymmddhhmm"), "图片文件(*.jpg),*.jpg", , "保存二维码为图片")If FlName = "False" Then MsgBox "二维码图片未保存", vbInformatio原创 2020-07-05 22:25:47 · 919 阅读 · 0 评论 -
利用VBA将表格保存为PDF文件
利用VBA将表格保存为PDF文件表格保存为PDF函数代码表格保存为PDF在VBA编程处理数据时,经常会需要将处理完成的数据或是报表保存输出为PDF文件,以便进行传播。下面的函数即可以实现将指定表的内容保存为PDF文件。保存文件前,需要确认表格内容已经是排版完成的内容,此函数没有排版的功能,具体请大家自行测试。函数代码Function SaveAsPDF(Optional FlName As String = "当前文件名")On Error GoTo errIf FlName = "当前文件名原创 2020-07-01 23:04:15 · 7944 阅读 · 0 评论 -
VBA按列名称或是按表格标题给EXCEL表格做排序
VBA给EXCEL表格做排序按列名称或是按标题给表格排序按列名称或是按标题给表格排序在VBA编程时,经常会对表格内容进行排序,为了方便对不同需求下的内容排序,编制了下面这个函数,此函数可以根据给定的列名称(A、B、C……),或是列的标题(“序号”、“姓名”、“年龄”……)进行排序,并且可以指定是升序或是降序。本函数可以设置需要排序的开始行(标题行),默认为有标题行,默认为所有的列全部参与排序,表格的全部列数一般不超过26列。本函数暂不支持对多列同时排序,有兴趣的可以对col_Name进行解析,并逐个原创 2020-06-30 21:53:33 · 2210 阅读 · 7 评论