|
|
|
|
| ****************************************
| | 2018/11/14 | 《解释Cells(Rows.Count, 2).End(3).Row》 |
|
解释Cells(Rows.Count, 5).End(3).Row cells(Rows.count,2)表示B列的最大单元格数,在2003自动即为[B65536],end(3),end属性,3表示XLUP,整个意思为B列所用的最大单元格,如B列用了8行,即cells(Rows.count,2).end(3).Row =8.
|
|
|
|
|
|
|
|
|
|
| ****************************************
| | 2018/11/13 | 《vba写入,检查构思》 |
|
vba写入,检查构思思路: 单元格相同,跳过,继续,不同(包括没有数据)标注颜色,继续。
|
|
|
|
|
|
|
|
|
|
| ****************************************
| | 2018/11/13 | 《vba按列循环》 |
|
vba按列循环 For j = 1 To 10 '数据列 For k = 1 To 10 '数据行
jjj和iii也一样
|
|
|
|
|
|
|
|
|
|
| ****************************************
| | 2018/11/10 | 《vba中的字典用法》 |
|
网址: http://blog.sina.cn/dpool/blog/s/blog_bf035a210102y6yx.html?md=gd
excel编程vba中的字典用法CreateObject("Scripting.Dictionary")
2017-11-09 09:59阅读:2,953 工作中用到vba统计学生成绩,遇到一个需要暂时存储信息的问题。网上搜索解决方法时看到了一个“字典”的对象,感觉很像java编辑中的集合map对象,有键有值成对存储数据。感觉非常有意思。特意搜了一下“字典”的简章说明、用法,记录到这里。即可以以后再用的时候查阅,也可以推广给大家学习。自己的vba知识又多了一点,字典、数组,都用过了。 这是我看到的最简单明了的Excel VBA字典(dictionary)的教程,把字典的应用,用短短几百字,全部道尽,简!但精彩!原文如下: 当年我(原作者:彭希仁)向LDY版主求教字典的时候,他老人家总结了一句话“呼之即来,挥之即去” 即学会d(a)=s 和 s=d(a) 就差不多了,忘记ADD存在。 一、定义字典 Set d = CreateObject('Scripting.Dictionary') 二、呼之即来,挥之即去 d('张三“)=1 '相当于给字典赋值,张三过来(没有就生成)拿个1站一边去 d('李四”)=2 '相当于给字典赋值,李四过来(没有就生成)拿个2站一边去 d('李四”)=3 '相当于改变值,字典中已经有李四了,李四跑过来,丢下2换个3站一边去 注:这时字典中有两个人的存在,张三=1 和 李四=3,相当于实现了去重复的功能 s=d('张三') 's=1 即叫了声张三,张三就告诉你他拿的是1 s=d('李四') 's=3 即叫了声李四,李四就告诉你他拿的是3 s=d('麻子') 's='' 没有找到麻子怎么办呢,字典里就自动生成一个麻子d('麻子') =“”,告诉你他手上是空的 注:这时字典中有三个人的存在,张三=1 ; 李四=3;麻子=“” 三、将字典里的东西变成数组 arr= d.Keys '把名字的集合按先来后到的原则放到一维数组里 arr(0)=“张三” ; arr(1)=“李四” ; arr(2)=“麻子” arr1=d.Items '把名字对应的值的集合按先来后到的原则放到一维数组里 arr1(0)=“1” ; arr1(1)=“3” ; arr1 (2)=“” 四、查找字典中有没有这个人 s=d.Exists(“张三”) 's=True 有的 s=d.Exists(“http://www.excelba.com”) 's=False 没有 五、清空数组 d.RemoveAll
|
|
|
|
|
|
|
|
|
|
| ****************************************
| | 2018/11/10 | 《vba一周课时写入月记》 |
|
成功运行,存在问题: 1.请假如何解决(目前排除) 2.列,变量(已解决) 3.日期 4.日期和列匹配
Sub 匹配_备份() Application.ScreenUpdating = False Dim i, ii, iii, k, j For k = 3 To 22 If Cells(k, 2) = "" Then Else For i = 2 To 29 m = Cells(i, 22) '这里Sheet是关键,如果在别的页执行,必须有,否则为当页 If InStr(Cells(k, 2), m) > 0 Then '如果提取的数据包含m For ii = 2 To 8 n = Cells(ii, 23) If InStr(Cells(k, 2), n) > 0 Then For iii = 2 To 55 If m = Sheet2.Cells(iii, 2) And n = Sheet2.Cells(iii, 4) Then Sheet2.Cells(iii, 9) = Sheet1.Cells(k, 1) '写入部分 End If Next End If Next End If Next End If Next Sheets("Sheet2").Select 'Cells(iii, 9).Select Application.ScreenUpdating = True End Sub
|
|
|
|
|
|
|
|
|
|
| ****************************************
| | 2018/11/8 | 《vba关闭屏幕刷新闪烁》 |
|
vba关闭屏幕刷新闪烁 sub abc()
Application.ScreenUpdating = False …… Application.ScreenUpdating = True end sub
|
|
|
|
|
|
|
|
|
|
| ****************************************
| | 2018/11/6 | 《获取当前所在单元格位置 》 |
|
vba怎么获取当前所在单元格位置 Sub a() activecell.address activecell.address() activecell.address(0,0) activecell.address(0,1) activecell.address(1,0) activecell.address(1,1) Sub End activecell.address'这是当前单元格地址 selection.offset(1, 0).select'这是向下跳1格 selection.offset(-1, 0).select'这是向上跳1格 selection.offset(0, -1).select'这是向左跳1格 selection.offset(0, 1).select'这是向右跳1格 具体应用可自行修改相应数值!!!
作用:输入(写入)出错时,修改前清除错误内容。 Sub 清除当前所在位置的单元格() k = ActiveCell.Address '获取当前所在位置的单元格 Range(k).ClearContents '清除所选单元格 End Sub
|
|
|
|
|
|
|
|
|
|
| ****************************************
| | 2018/11/6 | 《雁塔区教育局管幼儿园的》 |
|
85382168郭老师 85381962王老师
|
|
|
|
|
|
|