自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

预见未来to50的专栏

Life is limited, but art is long

  • 博客(114)
  • 收藏
  • 关注

原创 他山之石——VBA文本框

继续学习VBA!'**********************文字框控件***************'一 显示 '1 多行显示 'MultiLine 属性值为true时,可以多行显示文本 '2 文本框对齐 '左右对齐可以用TextAlign对齐,但上下对齐则没有相应的属性设置 '3 密码样式 '可以设置passwordChar属性来隐藏输入的内容 ...

2018-06-29 23:58:59 4513

原创 他山之石——按钮示例

继续学习VBA!'**********************按钮控件****************'一 按钮显示 '1 鼠标放在按钮上时可以显示的提示文字 '设置controltiptext属性 '2 在按钮上添加图片 '设置PicturePosition属性 '3 隐藏按钮 '设置Visible的值=true '二 按钮功能 '1 ...

2018-06-29 23:56:42 265

原创 他山之石——VBA窗体事件

继续学习VBA!

2018-06-29 23:47:35 3020

原创 他山之石——VBA窗体的使用

继续学习VBA!

2018-06-28 23:38:02 3149

原创 调试经验——Excel无效名称占用大量空间,删除后文件大小明显减小

今天,在调试一段VBA代码,净化待交付文件时,发现Excel中包含很多无效名称(Range Name),且占用大量空间。删除这些名称后,文件大小由9M减小到不到500K,相差近20倍。至于为什么?暂时不清楚,留待以后解决。...

2018-06-28 16:24:56 1458

原创 他山之石——Txt文件的读取

这一节实用性不高,但是也挺有意思。先留着,需要时再来。'Open 文件名 打开方式 as 文件编号 '打开方式: 'Input :只能读,不能写 'Append:允许读也允许写,如果存在文件就追加记录,如果没有就新建文件 'Output:可以读,也可以写。但总会把原来的同名文件删除,再新建一个 '读取txt文件内容方法 'input:从...

2018-06-28 01:47:09 496

原创 他山之石——使用VBA写入txt文件

这一节基本没用,除了最后一个例子:记录文件的打开和关闭时间。'Open 文件名 for 打开方式 as 文件编号 '打开方式: 'Input :只能读,不能写 'Append:允许读也允许写,如果存在文件就追加记录,如果没有就新建文件 'Output:可以读,也可以写。但总会把原来的同名文件删除,再新建一个 '读取txt文件内容方法 '...

2018-06-28 01:17:29 20198 1

原创 调试经验——使用VBA下载网络资源

第一次使用VBA从网上下载了一张图片,挺有意思!哈哈。代码:#If Win64 Then Private Declare PtrSafe Sub sleepp Lib "kernel32.dll" Alias "Sleep" (ByVal dwMilliseconds As LongLong) Private Declare PtrSafe Function DeleteUrlCa...

2018-06-27 23:07:57 844 1

原创 他山之石——VBA压缩文件和解压缩 (Compression/Decompression with VBA)

文件压缩和解压缩,目前在实际工作中用的不多,先留着吧,需要时再来看看。'获得rar的安装路径Function GetSetupPath(AppName As String) Dim WSH As Object Set WSH = CreateObject("Wscript.Shell") GetSetupPath = WSH.RegRead("HKEY_LOCAL_MAC...

2018-06-27 22:16:11 5030

原创 他山之石——VBA代码操作代码(Manipulating code with VBA)

代码操作代码,倒是挺高级的。至少在学习C、Java等其他语言时没有这样玩过。事实上,今天使用VBA删除了待交付文件中的VBA代码,技术水平有了进一步的提高!这节的内容感觉挺充实,认真学习,会有收获的。'VBE对象是根对象,表示在VBA编辑器中存在的所有对象的最上层对象 '一 VBAproject对象: VBE编辑器中的工程 '1 VBComponents对象:表示工...

2018-06-27 22:01:54 3251 3

原创 调试经验——VBA编程中遭遇“Runtime-error '9'”: Subscript out of range错误

今天,为了实现一个看似比较简单的功能,结果调试VBA代码花费了我近3个小时,一杯咖啡从早上喝到现在还没喝完。其中,遭遇了一个“Runtime-error '9'”: Subscript out of range错误,就耽误了很多时间。问题代码:With workbooks(fileName).VBProject For Each objVbc In .VBComponents ...

2018-06-27 18:29:02 22622

原创 调试经验——使用VBA删除待交付文件中的无效名称(Delete invalid range names with VBA)

需求:在辛苦生成报表后,要交付给用户的文件越“干净”越好!比如,在工作文件(workfile)中可能创建了很多vlookup区域(vlookup range names),这些名称会随着工作文件而“另存为”在待交付文件中。不要小看这些区域,实践证明,如果区域较多时,会额外占用很多空间。而且,这些区域对用户而言没有任何意义,所以,最好删除掉。代码:Sub deleteVBACode()Dim n...

2018-06-27 18:07:39 757

原创 调试经验——删除待交付文件中的VBA代码(Delete VBA code in the deliverable file)

需求:手动报表生成后,通常需要删除一些辅助工作表及VBA代码,因为用户是不需要看到这些内容的。代码:Sub deleteVBACode()Dim wkBook As Workbook      '用于删除delivery文件中的VBA代码(模块及工作表)Dim objVbc As Object        '定义delivery文件中的VBA组件(VB Component)    Se...

2018-06-27 17:53:55 649

原创 半年总结——CSDN博客篇数、访问量、排名及积分的统计

努力就有回报,利用空闲时间,将自己的学习经验写成博客,分享给所有有缘之人,也是一种积德行善。而排名,只是这个努力的副产品。何况,就算是排名第一又能说明什么呢?毕竟,写的多不代表学的好,学的好也不代表工作干的好。但是,有一点是肯定的:用心写好每一篇博客,做到言之有物,肯定是有意义的。因为,在工作中,有多少个点点滴滴的技术问题、业务问题,不是通过在网络上搜索而得到启发而最终“做”出来的。如果不是这么多...

2018-06-27 01:10:17 719

原创 他山之石——VBA文件夹遍历

Sub test3()Dim wb As WorkbookDim i As LongDim tDim arr()t = TimerActiveSheet.UsedRange = "" With Application.FileSearch '调用fileserch对象 .NewSearch '开始新的搜索 .LookIn = ThisWorkbo...

2018-06-27 00:00:42 387

原创 他山之石——VBA文件夹操作

'1 判断文件夹是否存在 'dir函数的第二个参数是vbdirectory时可以返回路径下的指定文件和文件夹,如果结果为"",则表示不存在。 Sub w1() If Dir(ThisWorkbook.path & "\2011年报表2", vbDirectory) = "" Then MsgBox "不存在" Else MsgBox "...

2018-06-26 23:59:26 1214

原创 他山之石——VBA程序提速-Part1

'调用对象是非常非常的耗费资源的,所以一定要尽可能的少调用对象。包括:'工作簿、工作表、单元格以及外引用对象。Sub 在循环中调用单元格() Dim x As Integer, k Dim t t = Timer For x = 1 To 20000 k = [a1] Next x Debug.Print Timer - tEnd SubSub 在循环外调用单元格(...

2018-06-26 23:58:12 580

原创 他山之石——VBA随机抽取

Sub Ëæ»úÌôÑ¡ÑÝʾ³ÌÐò1() Dim arr Dim x As Integer, num As Integer, k As Integer Range("c1:c10") = "" Range("a1:a10") = Application.Transpose(Array("A", "B", "C", "D", "E&quot

2018-06-26 23:56:31 2028

转载 转发-一名 40 岁“老”码农的反思

原文链接:https://blog.csdn.net/zV3e189oS5c0tSknrBCL/article/details/80780586看到这篇文章,送给正在奔四路上的自己,共勉!----------------------------------------------------------------------------------------------------------...

2018-06-26 17:02:59 207

原创 他山之石——VBA中使用时间和日期

时间、日期是编程中经常用到而功能、格式众多的领域,程序调试中往往在其身上花费不少时间。'1 计算两个日期相隔天数,月数,年数,小时,分种,秒 Sub tt1() Dim d1, d2 As Date d1 = #11/21/2011# d2 = #12/1/2011# Debug.Print "相隔" & (d2 - d1) & "天" ...

2018-06-26 00:24:28 7718

原创 他山之石——VBA中的数据类型转换

发现这节的内容相比正则表达式简单不少,我还是比较喜欢简单的内容,哈哈。不过,所谓“会者不难,难者不会”,难易只是相对而言的,这就是为什么我们要冒着酷暑不断学习的原因——学会难者,难者就会变得容易。'1 数据类型综述 '在VBA中的数据类型有整数、文本、对象等类型。这些不同的类型有着特定的作用,在进行运算时也会占用 '不同大小的内存,所以我们在编写程序时为了提高运行效率,一般都要定义数据...

2018-06-26 00:14:43 2204

原创 他山之石——在VBA中使用正则表达式-Part3(Regular Expression)

成为Excel精英真不容易啊,正则表达式必须拿下!'() '可以让括号内作为一个整体产生重复 Sub t29() Dim regx As New RegExp Dim sr sr = "A3A3QA3A37BDFE87A8" With regx .Global...

2018-06-26 00:02:04 344

原创 他山之石——在VBA中使用正则表达式-Part2(Regular Expression)

继续学习正则表达式。'正则表达式的核心是设置对比的规则,也就是设置Pattern属性,而组成这些规则除了字符本身以外,是具有特定含义的符号。 '下面介绍的是正规表达式中常用符号的第一部分。 '\号 '1.放在不便书写的字符前面,如换行符(\r),回车符(\n),制表符(\t),\自身(\\) '2.放在有特殊意义字符的前面,表示它自身,"\$","\^","\." ...

2018-06-25 23:40:52 434

原创 他山之石——在VBA中使用正则表达式-Part1(Regular Expression)

相比一些常用的字符串操作函数,正则表达式才是王者啊,功能强大很多!'一 正则表达式 '正则表达式是处理字符串的外部工具,它可以根据设置的字符串对比规则,进行字符串的对比、替换等操作。 '正则表达式的作用: '1、完成复杂的字符串判断 '2、在字符串判断时,可以最大限度的避开循环,从而达到提高运行效率的目的。 '二 使用方法 '1、引用...

2018-06-25 23:16:07 1035

原创 他山之石——VBA Like运算符的使用

目前为止没怎么用过这个LIKE关键字,但看完教学视频后,感觉可以在判断字符串是否包含子串时替代Instr函数使用,更为方便。'like "对比的字符串"'Option Compare Text ' 字符串1 like 字符串2 Sub L1() Debug.Print "ABC" Like "ABc" End Sub'通配符? '判断BA是不是长度为2,且第二个字符为A...

2018-06-25 23:06:53 6810

原创 他山之石——VBA中的字符串操作

字符串操作是编程中最基本的操作,同时因其方法众多、参数多变,并不是很好掌握的。如果编程中遇到具体问题不会的,还是要多搜搜别人的解决方案的。'字符串截取'left,right,mid,LenSub z1() Dim sr sr = "Excel精英培训网" Debug.Print Left(sr, 5) Debug.Print Right(sr, 5) Debug.Prin...

2018-06-25 22:58:54 515

原创 他山之石——VBA文件操作对话框

这部分还是很实用的,曾经使用这些方法帮助客户实现过一个小工具,很大程度提升了工作效率。Option Explicit'一 FileDialog 对象简介 '提供文件对话框,功能与 Microsoft Office 应用程序中标准的“打开”和“保存”对话框类似。 '利用这些对话框,解决方案的用户可以简便地指定解决方案中应该使用的文件和文件夹。''“打开”对话框:让用户选择一个或多个可以...

2018-06-25 22:38:34 990

原创 他山之石——VBA自定义函数2

“书山有路勤为径,学海无涯苦作舟”,学到了自定义函数的一些高级用法,不错!'返回一个固定区间固定个数的不重复随数Function shuiji(maxnum, geshu) 'maxnum是区间最大的数,geshu是返回多少个不重复的数 Dim d As New Dictionary Dim num Application.Volatile Do num = Int(Rnd() *...

2018-06-25 22:20:35 1071

原创 他山之石——VBA自定义函数

VBA自定义函数自己是最近才开始使用的。其好处是可在工作表中直接调用,很方便。这里,这位老师总结的很好,学习了!'1 什么是自定义函数? '在VBA中有VBA函数,我们还可以调用工作表函数,我们能不能自已编写函数呢?可以,这就是本集所讲的自定义函数 '2 怎么编写自定义函数? '我们可以按下面的结构编写自定义函数 ' Function 函数名称(参数1,参数2.....

2018-06-24 23:24:50 7192

原创 他山之石——使用VBA字典-Part3

这部分算是VBA字典的高级用法了,竟然可以实现透视表功能,确实很强大!Sub 下棋法之多列汇总() Dim 棋盘(1 To 10000, 1 To 3) Dim 行数 Dim arr, x, k Dim d As New Dictionary arr = Range("a2:c" & Range("a65536").End(xlUp).Row) For x = 1 To UBo...

2018-06-24 23:14:04 1084 1

原创 他山之石——使用VBA字典-Part2

这里讲的三个字典的应用,都挺新鲜的,有机会可以实践一下。Sub 提取不重复的产品() Dim d As New Dictionary Dim arr, x arr = Range("a2:a12") For x = 1 To UBound(arr) d(arr(x, 1)) = "" Next x Range("c2").Resize(d.Count) = Applicat...

2018-06-24 23:00:09 399 2

原创 他山之石——使用VBA字典-Part1

工作中经常要进行数据集间的主键查询,满足字典的要求(key列不允许有重复元素)。所以,以后可考虑使用字典来实现一些查询需求,以获取更快的速度。'1 什么是VBA字典? '字典(dictionary)是一个储存数据的小仓库。共有两列。 '第一列叫key , 不允许有重复的元素。 '第二列是item,每一个key对应一个item,本列允许为重复 '...

2018-06-24 21:51:00 910

原创 他山之石——使用VBA演示排序算法-Part2(插入排序法、希尔排序法和快速排序法)

希尔排序法有点陌生了,学习!Option ExplicitSub 插入排序()Dim arr, temp, x, y, t, iMax, k, k1, k2 t = Timer arr = Range("a1:a10") For x = 2 To UBound(arr) temp = arr(x, 1) '记得要插入的值 For y = x...

2018-06-24 21:33:19 1257

原创 他山之石——使用VBA演示排序算法-Part1(冒泡排序法和选择排序法)

程序=算法+数据结构软件=程序+文档我的理解,算法就是解决问题的方法和步骤,因为这世界充满了问题,所以可以说,算法无处不在。Option ExplicitSub 冒泡排序() Dim arr, temp, x, y, t, k t = Timer arr = Range("a1:a10") For x = 1 To UBound(arr) - 1 For y = x + 1 To...

2018-06-24 21:21:48 1838

原创 他山之石——VBA数组的使用-Part4(VBA Array)

学到这个程度,已经具有一定程度的实用性了。事实上,单元格设置背景颜色在实际工作中用到过,不过是帮同事完成的。记得当时花了近四个小时辛苦调试出来的。用到了三重循环,用到了单元格内换行的判断等比较复杂的逻辑。Option Explicit'数组也可以设置格式? '数组除了数字类型外,当然没有颜色、字体等格式,但是别忘了range对象可以表示多个连续或不连续的单元格区域 '利用上述特点,我...

2018-06-24 02:32:30 1102

原创 他山之石——VBA数组的使用-Part3(VBA Array)

学习任何东西,往往坚持到最后,才能学到“干货”。试想,如果新手两三下就能学会的东西就能在现实中排上大用场,那老手还有存在的必要吗?Option Explicit''1、数组的最值 Sub s() Dim arr1() arr1 = Array(1, 12, 4, 5, 19) MsgBox "1, 12, 4, 5, 19最大值" &amp...

2018-06-24 01:56:37 2487

原创 他山之石——VBA数组的使用-Part2(VBA Array)

继续学习!Option Explicit'1、数组的大小'数组是用编号排序的,那么如何获得一个数组的大小呢 'Lbound(数组) 可以获取数组的最小下标(编号) 'Ubound(数组) 可以获取数组的最大上标(编号) 'Ubound(数组,1) 可以获得数组的行方面(第1维)最大上标 'Ubound(数组,2) 可以获得数组的列方向(第2维)的最大上标Sub d6() Di...

2018-06-24 00:18:42 1558

原创 他山之石——VBA数组的使用-Part1(VBA Array)

数据量较大时,数组的使用几乎是必不可少的。所以,数组必须熟练。Option Explicit'向VBA数组中写入数据 '1、按编号(标)写入和读取 Sub t1() '写入一维数组 Dim x As Integer Dim arr(1 To 10) arr(2) = 190 arr(10) = 5 End Sub ...

2018-06-24 00:04:36 3901

原创 他山之石——使用VBA进行单元格查找(Find/Match with VBA)

这节对我的启发是,是否可使用Find/Match或其他方法来替代worksheetfunction.vlookup方法,从而提高工作中的一个报表的生成速度(目前耗时45分钟左右)。似乎可以用字典+数组的方法得到最高的性能,要不要试一试?这是个问题。Option Explicit'1 使用循环查找 (在单元格中查找效率太低)'2 调用工作表函数 Sub c1() '判断是否存在...

2018-06-22 23:58:53 2912

原创 他山之石——使用VBA完成单元格高级操作(复制、粘贴、分列汇总)(Advanced range operation with VBA)

这节的例子很实用,值得好好学习。最重要的一点,原来复制单元格竟然可以用赋值语句来完成,简直是神操作啊。Option Explicit '1 单元格输入 Sub t1() Range("a1") = "a" & "b" Range("b1") = "a" & Chr(10) & "b" '换行答输入

2018-06-22 23:16:01 9190

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除