自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奔跑的犀牛先生

自学编程的中年大叔--男人至死仍少年--人的一切痛苦本质上都是对自己无能的愤怒

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

原创 【原创】VBA学习笔记(315)VBA 程序之间的调用,执行,关闭控制等基础

1 执行其他过程sub call sub()2 调用其他函数(VBA若只调用函数,并不会直接返回函数返回值)func1 call function()3 调用其他函数并使用函数返回值Debug.Print func1(1, 3) a = func1(100, 99)4 如何关闭其他sub,用传递参数的方法test12 1 5如何关闭...

2019-12-31 22:25:18 1480

原创 【原创】VBA学习笔记(305)vba中end的用法

endend subend functionend type"在End Sub、End Function或End属性后面只能出现注释"提示。Public Type RECTLeft As LongTop As LongRoght As LongBottom As LongEnd Type...

2019-12-31 14:40:31 5428

原创 【原创】VBA学习笔记(306)VBA中关于 exit 的用法

1 exit 用法的简要总结1.1 具体用法exit do ' 用在do loop 循环里 exit for ' 用在 for next 循环里 exit sub ' 用在sub里 exit function ' 用在function里 exit propp...

2019-12-30 18:58:53 5484 1

原创 【原创】VBA学习笔记(311)VBA的range() 是特例可以当做变量/对象,但range()如果是obejct不能被直接当成数组

1 区分好VBA中的不同数据类型:1.1 VBA对象,Excel--application对象,变量,数组VBA中vb的对象: object fso scripting.dictionaryVBA中A(application=excel)的对象:cells() range() sheet() workbook() 等等VBA中的数据结构: 常量 变量 数...

2019-12-27 17:12:22 2646

原创 【原创】VBA学习笔记(307)VBA的一些细节:比如 cells() 可随意,但是 range() 赋值需要range().value

1 range赋值,有时候注意些完整,加range().valuecells() 赋值 可以 cells()=cells() range() 赋值 不可以 range()=range() Range("b5:d7") = Range("b1:d3").Value 才可以Sub test112()Range("f1:h3") = ...

2019-12-27 13:58:14 5637

原创 【原创】VBA学习笔记(309)VBA 时间相关函数和方法整理

1 时间相关的基础用法1.1 让程序等待xx秒/分/时timevalue("") '需要加引号 错误语法: application.wait(now+timevalue(00:00:01)) 错误语法: application.wait(now+timevalue("00:00:01"))Sub maomi1()Debug.Print "point 1"t = Timer...

2019-12-27 11:59:16 5167

原创 【原创】VBA学习笔记(308)VBA基础知识关于行号,列号等,分清楚 .row 和 .rows  和 .rows.count

1 为什么连,行号,列号之类的都要重新拿出来说很多基础知识,我以为我懂 但其实我一用就发现各种问题,其实我不懂 现在想想,王阳明先生的知行合一,真有道理,知而不能行,就是不知。2 如何获得行号,列号单行单列的 行号,列号 .row .column 范围内的 行号,列号 集合 range().rows 范围内的 行号,列号 集合的数量 rang...

2019-12-27 08:56:44 8211 1

原创 VBA 学习和改进一个代码,可显示选择区域多行多列的聚光灯效果

代码1:网上学习别人写的聚光灯效果(但即使选中1个区域,也只聚光1行1列)注意点: 代码需要放在 workbook里 代码需要放在 workbook_SheetSelectionChange 事件里 Cells.Interior.ColorIndex = -4142 '用来清除之前的颜色 颜色代码可以自己修改 局限性:如果选中1个区域,聚光灯,选择的还是左上角单元格的...

2019-12-26 09:19:52 1466

原创 VBA,application.match 和 worksheetfunction.match() 比较

Application.WorksheetFunction.Match() 会报错,中断程序 Application.Match() 会报错,但不会中断程序 备注点: Application.Match("",arr1,0) 错误 Application.Match("",arr1,0) 正确,不要加引号,否则会查不到 Sub charleszhang1()...

2019-12-25 20:50:35 8690

原创 VBA, range.resize() 的用法,省略列数尤其注意要省略 逗号,resize()里的参数不能是0或负数------wenti!!

range().resize(x,y) 方法语法Range(i,j).resize(行数,列数) resize(x,y) 表示的区域,x是行,往下。Y是列,往右。重新定位出来的区域resize() 得出的是一个区域范围!!! 因为X 是表示行数,必须大于0 因为Y是表示列数,必须大于0 resize(x,y)可以为负数吗?比如 resize(-1,-1) ...

2019-12-25 19:24:56 10311

原创 VBA 如何给数组去重?

代码1:字典方法Sub jackma1()arr1 = Array(1, 2, 3, 4, 5, 1, 1, 1, 5)Dim dict1 As ObjectSet dict1 = CreateObject("scripting.dictionary")'把array的element当做key,赋值item为空For i = LBound(arr1) ...

2019-12-25 16:56:44 6495

原创 【原创】VBA学习笔记(310)VBA的一维数组相关的 工作表函数,方法等等

1 数组相关的工作表函数,方法工作表函数(都是只对一维数组生效)application.max() application.min() application.large() application.small() application.count() application.counta()代码1Sub test110()arr1 = Array(1, 2, 3,...

2019-12-24 20:33:02 621

原创 【原创】VBA学习笔记(301)VBA 用application.index() 取2维数组里的某1列,某1行

1 函数用法application.index() 用法range() 从EXCEL拿出来的必然都是2维数组 arr1=range("a1:c5") '取出来的是一个2维数组 arr2=range("a1:d1") '取出来的看着是1行,但不是一维数组,实际是一个2维数组 arr3=range("a1:a10") '取出来的看着是1列,但不是一维数组,实际是...

2019-12-24 20:23:10 22939

原创 【原创】VBA学习笔记(316)VBA编程基础知识扫盲,只适合纯自学新手看

1 基础概念理解不透导致的问题1:语句不完整问题1.1 语句不完整导致的报错新手比如我在VBE里写了点东西,很多时候报错,是因为语句不完整导致的问题 比如写下面这些语句,点运行VBE会报错,为什么? Range(“a1:a8”) a 1+21.2 只有这样写才不报错,因为这样的一行都是完整的“一行语句”arr1= Range(“a1:a8”) Debug....

2019-12-24 18:36:24 2224

原创 VBA里错误处理语句,on error goto line 为什么只能执行1次?

错误捕捉语句---错误转义语句错误捕捉陷阱on error gotoon erro resume nexton error goto line 等,只能执行1次?或者是循环内只能执行1次Sub test3()line1:Err.Cleari1 = InputBox("输入一个数字")On Error GoTo...

2019-12-24 16:50:15 4504 4

原创 VBA,查找EXCEL某区域内的,字符串的首1-2个字符是否为月份

问题:数据的第1-2个字符是月份,想查到对应的数据数据源1-11-1 5-5-1 11-2-1 10-9-12 11-2-2 10-9-13 11-2-3 10-9-14 12-2-4 10-9-15 9-2-5 11-9-16 11-2-6 1-9-17 7-2-7 10-9-18 代...

2019-12-24 13:40:47 330

原创 VBA 判断是否为数字的函数,application.isnumber() 和 isnumeric() 函数的使用比较 和注意点

两个函数功能比较application.isnumber() '只有是 纯数字 才返回true isnumeric() '是 纯数字 或者 纯数字的字符串 都返回true注意点inputbox() 函数返回的是string VBA中,只有"a" 才是字符串。而 a 不是字符串是变量 没有返回值的 变量,语句,都返回空...

2019-12-24 11:10:15 13594

原创 VBA inputbox() 函数返回值,是否可以带多参数等

1 inputbox()函数值1.1inputbox() 的返回值inputbox()的返回值,String 类型 在一对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的 String。 如果用户单击 Cancel,则此函数返回一个长度为零的字符串 ("")。2 inputbox的后续处理2.1把inputbox返回的值,处理为数字等如果是...

2019-12-23 21:09:51 5039

原创 VBA:输入框inputbox(),要求只能输入几个数字,如果输入不符合要求,会继续要求输入

1输入框inputbox,要求只能输入几个数字1.1代码1:可以运行实现效果 必须输入 指定数字的数字 如果超过了指定的 字符数,会报错,且要求重新输入 如果输入的字符不是数字,或数字字符串 (input输入的一定是string),会报错,且要求重新输入 以后可以考虑加个多次错误,跳出,结束。Sub ponyma_in1()input101:str1 = Input...

2019-12-23 18:16:33 5585

原创 VBA 不能给数组赋值,其实只是不能给静态数组整体赋值

VBA 不能给数组赋值,其实只是不能给静态数组整体赋值

2019-12-23 18:15:31 6139 2

原创 VBA 从debug.print 试验开始,VBA里是 chr(10) 而不是char(10)

----我要控制自己 急于求成,毛躁的毛病VBA中,debug.print 当函数用,当语句用都可以 Debug.Print a, b, c ',相当于tab Debug.Print a; b; c ';在中间相当于小空格 Debug.Print a & b & c '&直接相连 ;作用,在中间相当小空格,末尾表示不换行Sub...

2019-12-23 15:24:31 808

原创 【原创】VBA学习笔记(300)VBA 很多工作表函数都只对1维数组有用,用2维数组上经常报错!

1 VBA 很多工作表函数,都只对一维数组有用,用2维数组上经常报错很多工作表函数都不能对二维数组生效 有时候连错误值都不返回,直接代码中断)2 举例1:join() 和 split() 函数 只对生效2.1比如 join() 和 split() 函数,只适合一维数组值得注意的是:split和join只能对一维数组进行操作Sub try001()str1 = "1,2...

2019-12-23 11:09:27 755 1

原创 VBA 展示数组全部内容的4种方式------假设array的index 必连续

四种方法for i(index)in lbound(arr1) to ubound(arr) next for each i(element) in arr1 next print ;的使用 join() 的展示作用Sub jackma_array1() arr1 = Array(1, 2, 3, 4, 5) '循环index,展示arrayFor ...

2019-12-20 16:18:45 3173

原创 VBA 如何实现 数组相减,也就是数组的补集

数组相减代码1 也是有问题的,因为filter 不支持精确匹配,而是模糊查询,所以会过滤掉不该过滤的Sub charlsezhang2()arr1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)arr2 = Array(1, 3, 5, 7, 9)'想得到一个减去的数组'据说不适合删数组的元素---- 写...

2019-12-20 16:05:16 2099

原创 VBA 如何删除数组里的某个元素

代码1:Sub charlsezhang1()arr1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)arr2 = [{1,3,5,7,9}]'想得到一个减去的数组For Each i In arr1 For Each j In arr2 If i = j Then arr1(i) = "" ...

2019-12-20 15:17:50 12700 1

原创 VBA 如何将array数组逆序排列呢?---包含1维数组,2维数组举例

代码1:试图利用 strreverse 取反,但失败-----局限性太大好像没有数组直接反转的 函数 我尝试利用strreverse转一下看看 这个字符串取反strreverse,连10都变01,不可行,不是按单个元素取反序的。 局限性较大 少数情况,每个element 都是但字符的 但数字字母的也许可用。Sub jackma_arrtest1()'好像没有数组直接反...

2019-12-20 13:20:19 2939

原创 VBA,如何查找一个数组内,某个元素的index,和序号(从1开始 )是多少?以及报错处理

如何查找一个数组内,某个元素的index是多少?如果element元素唯一,可以用match查, 但是 application.match 比 worksheetfunction.match() 函数更健壮 如果不唯一呢 用match 只能返回第一个查到的元素的index注意 match() 查找 5 和 "5" 都不一样 Application.Match...

2019-12-20 11:59:00 11965

原创 VBA中的颜色,colorIndex 或color 或backcolor

代码1: 哄孩子的EXCEL变颜色代码Sub ponyma1()'For i = 1 To 101 Step 2' Cells(i, 2).Interior.ColorIndex = 6'Next'''For i = 2 To 100 Step 2' Cells(i, 2).Interior.ColorIndex = 1'Nextk = 10For i...

2019-12-20 09:22:53 33542

原创 VBA 99乘法表

Sub chenfa99biao()For i = 1 To 9 For j = 1 To i Debug.Print i & "*" & j & "=" & i * j & " "; Next Debug.PrintNextEnd SubSub chenfa99...

2019-12-19 21:36:42 583

原创 VBA 使用立即窗口 和 本地窗口 调试的一些基本方法

调试,查看帮助选择某个词语,按F1没有特别方法清空 立即窗口F5 立刻执行F8 分步骤执行本地窗口,执行过程中才显示执行完成了就清除本地窗口---要加断点+监视窗口才行application.wait(now+timevalue("00:00:00"))可以运行多次vba中提供了3个声明来设置错误陷阱.On Erro...

2019-12-19 20:46:14 9246

原创 VBA 数组定义,赋值,一维数组

1VBA数组的基础定义1.1什么是数组?就是一组数/字符等用同一个名字(这个名字就是:数组名),作为一个整体存储在一起1.2什么是元素这些被保存在同一个数组名下的,多个内容,称为element 元素 数组里的元素是可以重复的1.3元素是怎么在数组内排序的?数组是有序的 用什么来标识顺序呢?,就是index index 是一串连续的整数(也可以为负数),index必须 ...

2019-12-19 13:35:43 52277 4

原创 VBA数组,如何取数组的index? index上下限,以及每个数组元素的index呢?

原来的问题和代码Sub ponyma1()Dim arr1() '和arr1()下面赋值要一致?要么都arr?j = 0'生成数组arr1() = Range("a1" & ":" & "a" & Range("a65535").End(xlUp).Row)'注意数组写法 arr(1,2)是个2维数组'从 excel 的 range 读的内...

2019-12-18 19:22:46 3840

原创 VBA----查找 Excel 表每个sheet的第1列,是否存在重复值

代码准备放到关闭表前,报错这个代码还有点问题Sub jackxxx1()'先撸有几张表,表名存入数组中Dim arr1()Dim arr2()Dim dic1 As Objectk = 0wkn1 = ThisWorkbook.NameSet dic1 = CreateObject("scripting.dictionary")...

2019-12-18 17:38:20 981

原创 EXCEL---使用数据透视表,比写公式,VBA,做一些筛选更快----像学习下数据透视表

想学习数据透视表这个作为一个入门的例子1 原始数据建筑ID 前置建筑ID 100020 100001 100021 100001 100022 100001 100023 100001 100024 100001 100025 100001 100026 100010 100027 ...

2019-12-18 13:39:41 688

原创 VBA每日一练(25)在VBA里,使用fso统计所有子文件夹的文件数量,使用递归

递归是什么我call我自己我调用我自己为什么要用递归?因为使用递归,不需要知道需要循环多少次比如文件夹下的子文件夹里的文件数,这个可能嵌套无限层次,使用if+循环很难判断的,使用递归就可以https://blog.csdn.net/wang_zhenwei/article/details/78857933http://club.excelhome.net/thre...

2019-12-10 10:42:36 920

原创 VBA每日一练(24)在VBA里,3种方法,使用fso 如何统计 某种后缀名类型的文件数量

fso统计文件数量fso统计文件数量,如果不区分文件类型,可以非常方便 fso.getfolder().files.count 但是fso统计某种类型的文件数量,需要遍历才行 可以用 for each 遍历 最准的方法是用 fso.getExtensionName() = "" 来判断 用 right(filename,3)="" 得明确的知道 后缀名位数,一般是知道是哪种...

2019-12-09 17:51:46 1552

原创 VBA每日一练(23)在VBA里,什么时候可以直接用 for each循环,而不用 for i= xx 或 while循环呢?

1 问题:什么时候可以用 for each 进行循环? 不需要知道具体的循环变量,上下限。答案 : 当for each xx in yyy ,只要 yyy 是 对象集合(s) 比如像workbook 这样的可数的对象的集合就可以 可以用for each 的地方都可以用 for i = 下限 to 上限 ste...

2019-12-09 16:34:02 760

原创 VBA每日一练(22),VBA 的 scripting 类库 (scrrun.dll) 和 fso 详细学习

1 scripting类库 (scrrun.dll)Scripting类库中有三个可以直接使用NEW关键字实例化的类,第一个就是常用的字典,第三个是FSO。这个介绍的挺好https://www.cnblogs.com/zzstone/p/5530707.html1.1scripting类库有多少东西?scripting.dictionary scripting.f...

2019-12-09 15:47:45 3049

原创 VBA每日一练(21),VBA 按行导入txt的内容

代码1Sub ponyma1()'按行逐行导入txt到excelPATH1 = "C:\Users\Administrator\Desktop"Open PATH1 & "\" & "test102.TXT" For Input As #1i = 1Do While Not EOF(1)Line Input #1, str1 Cells(i...

2019-12-05 18:26:44 917

原创 VBA每日一练(20),VBA 导出 sheet的某一些单元格为1个txt

问题分析导出 sheet的某一些单元格为1个txt 导出 sheet的某一行为1个txt 导出 sheet的某一个sheet为1个txt代码1Sub jackma102()'尝试每行导出为1个txt'利用open 打开文件找不到会生成的作用PATH1 = "C:\Users\Administrator\Desktop\test1"For i = 1 T...

2019-12-05 17:55:33 425

空空如也

空空如也

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

TA关注的人

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