磕大头时怎样配合呼吸和这个VBA配合

论坛 & excelvba程序开发 回复怎么实现在运行宏自动引用的表格中,让手动输入_百度知道
论坛 & excelvba程序开发 回复怎么实现在运行宏自动引用的表格中,让手动输入
Private Sub Workbook_open() 【功能代码】 End Sub 或者 Private Sub Workbook_open() Call【代码名】 End Sub Workbook_open事件代码为工作簿代码,一定要放在Thisworkbook模块内,否则不会自动运行。
采纳率:89%
来自团队:
为您推荐:
其他类似问题
excelvba的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。6被浏览282分享邀请回答=MID(C4,7,4)&"年"&MID(C4,11,2)&"月"&MID(C4,13,2)&"日"
相信这个公式也有其他的改进办法,但是如果用vba写出自定义函数,可以做成下面这样的:简单吧,就是一个单词就搞定了,写成中文也可以哦:这个例子看山去比用excel自带的函数简单不了多少,但是想一下,当遇到需要很多条件嵌套、需要很多次取值、需要多个函数并用等情况的时候呢。经常看见一些同事写很长很长的公式解决一个小问题,我觉得这并不能体现ta水平很高,反而体现了ta对公式的理解不够透彻。vba的自定义函数是一方面,数组公式在excel中同样很强大,但不管什么,都只是工具。重点都是要解决问题,在解决问题的基础上再去寻找更简单的方法,直观的流程。其次,vba很多时候就是在写函数,这里我们先介绍一下函数式编程(functional programming):看百科的解释很学术,我们抓住两点就够了:计算比指令执行更重要,也就是过程实现的思想比实现的方法更重要。计算可随时调用,也就是可以重复使用,既然要重复使用,说明也是经常用到的。下面的截图是wind在excel中插件的部分模块:可以看到,没一个小节开头都是Public Function......。function代表的就是函数,每一个函数实现一个小功能,需要这个功能的时候直接调用这个函数就可以,不需要再写一遍函数中的代码。即直观清楚,又减少工作量。最后,vba中也经常用到excel中的函数,我们称为工作簿函数,比如,sum用在excel中可以求和,算然vba函数中也有sum,但是如果我们再vba中调用工作簿函数,会写成下面这样:Sub add()
Dim a As Byte
a = Application.WorksheetFunction.Sum(Range("b1:b6"))
以上,函数和vba是密不可分的,相辅相成,每一个都了解透了,自然能找到解决问题最合适、最简单的方法!22 条评论分享收藏感谢收起11 条评论分享收藏感谢收起查看: 518|回复: 3
VBA如何匹配内容
阅读权限10
在线时间 小时
本帖最后由 fcxkfcxk 于
17:18 编辑
姓名:班级:&&
张三& & 1班
小李& & 2班
吴大& & 3班
小六& & 4班
陈五& & 5班
老王& & 6班
姓名:班级 :
小六& &1班
张三& &5班
老王& &1班
吴大& &2班
陈五& &3班
把表2的班级匹配到表1中。班级排序、并把没有匹配到的另存在表3中。
姓名:班级:&&
老五& & 1班
小六& & 1班
吴大& & 2班
陈五& & 3班
张三& & 5班
姓名:班级:
小李& & 2班
数据在源文件
15:38 上传
点击文件名下载附件
3.74 KB, 下载次数: 10
阅读权限20
在线时间 小时
自己传个附件吧 别光说 还要别人帮你做个附件么
阅读权限100
在线时间 小时
用公式解决 :
同时打开表1 表2
表1 D2 输入 =VLOOKUP(A2,[表2.xls]Sheet1!$A$1:$C$19,2,)
出错的就是没有匹配的,可以筛选一下 单独复制出来
没出错的 你可以排序一下,即可得到你要的结果。
我觉得 比VBA要快。
阅读权限10
在线时间 小时
本帖最后由 fcxkfcxk 于
17:21 编辑
用公式解决 :
同时打开表1 表2
表1 D2 输入 =VLOOKUP(A2,[表2.xls]Sheet1!$A$1:$C$19,2,)
要是把表2中增多的数据导入表1中:(如表1中没有的。自动加到表1中)能用VBA就更方便
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 3625|回复: 8
一个漂亮自定义的进度条,在状态栏显示,怎样和这个VBA配合呢?
阅读权限20
在线时间 小时
一个漂亮自定义的进度条,在状态栏显示,怎样和这个VBA配合呢?
转自这里:
先看看效果:
4328.png (11.13 KB, 下载次数: 1)
18:53 上传
=========================
'自定义的进度条,在状态栏显示
Function GetProgress(curValue, maxValue)
Dim i As Single, j As Integer, s As String
i = maxValue / 20
j = curValue / i
For m = 1 To j
& & s = s & &■&
Next m
For n = 1 To 20 - j
& & s = s & &□&
Next n
GetProgress = s & FormatNumber(curValue / maxValue * 100, 2) & &%&
End Function复制代码
调用方式示例:
rs.Open sql,&&connXls, 1
Dim p As Integer: p = 0
Do While Not rs.EOF
p = p + 1
'在状态栏显示
Application.StatusBar = GetProgress(p, rs.RecordCount)复制代码
不懂SPL,没有看明白怎样使用这个,我有一个小程序:
Private Sub CommandButton1_Click()
'在a列每隔3秒写入一个数字,由循环计算得出
Dim i, j As Integer
For i = 1 To 100
blnStop = True
Application.OnTime Now + TimeValue(&00:00:3&), &myREDO&& &'&===设定暂停3秒
While blnStop& &'&==前面设了blnSTop为真
DoEvents& & '&==5秒内一直不做什么事,执行Doevents函数(就是系统空循环)
Wend
'MsgBox &ok!&
j = i + 100
Cells(i, 1) = j
End Sub复制代码下面这个myREDO程序要放入模块中供上面的程序调用:
Sub myREDO()
blnStop = False
End Sub复制代码请老师们指导,怎样使用这个进度条?到我上面的程序中,让它从开始就出现进度,当写满100个表格时,走到100%??
(9.37 KB, 下载次数: 65)
18:54 上传
点击文件名下载附件
阅读权限95
在线时间 小时
参见附件。
10:41 上传
点击文件名下载附件
10.75 KB, 下载次数: 97
阅读权限95
在线时间 小时
解决CPU占用高,应改变调用方式。参见附件。
11:37 上传
点击文件名下载附件
11.06 KB, 下载次数: 185
阅读权限20
在线时间 小时
多谢指导!
我还做了测试:
'经测试,窗口最大化时,分辨率,状态栏上总共能显示字符为104个,多一个就不再显示;
'窗口还原时,分辨率,状态栏上总共能显示字符为57个;
'所以,为适应大小窗口,进度条的长度要按照总字符数&57为宜。
阅读权限90
在线时间 小时
提高点效率~
Function GetProgress(curValue, maxValue) As String
& &
& & Dim s$(1 To 4), i&, j&
& & Const L& = 20
& & i = maxValue \ L
& & j = curValue \ i
& & s(1) = String(j, &■&)
& & s(2) = String(L - j, &□&)
& & s(3) = Int(curValue / maxValue * 100)
& & s(4) = &%&
& & GetProgress = Join(s, &&)
End Function
复制代码
阅读权限30
在线时间 小时
GetProgress = s & Format(curValue / maxValue, &0.0%&)
阅读权限10
在线时间 小时
解决CPU占用高,应改变调用方式。参见附件。
我使用了你的代码,单步运行的时候有显示精度条,连续运行就没有显示,不知道什么原因。我的代码主要是两个不同工作薄之间复制行
阅读权限50
在线时间 小时
漂亮的自定义进度条
阅读权限95
在线时间 小时
我使用了你的代码,单步运行的时候有显示精度条,连续运行就没有显示,不知道什么原因。我的代码主要是两 ...
用2L附件试试
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 419|回复: 0
vba的自动匹配与填充
阅读权限10
在线时间 小时
本帖最后由 gaseahod 于
14:35 编辑
描述起来拗口,理解起来简单,我直接举例。D表格中第一行的C列是项目名称,比如第一个叫“万豪广场”,我想查看在K表格中,哪一个关键字包含在“万豪广场”中,一看得知第一行有(A列是关键字),这时候我知道它归属的KA是万豪(A1:A7)都归属于万豪,这时候我需要在D表格的E2中填入该项目归属的KA 万豪。其实这个工作用 if&&isnumber find 组合一个公式可以完成,但是现在我在学习vba想用vba实现。我编写了一个代码,实验中我先用一个for next循环做第一个项目能够实现。代码如下:
Sub try()Dim D As Worksheet, K As WorksheetSet D = Worksheets(&D&)Set K = Worksheets(&K&)Dim i& &For i = 1 To K.UsedRange.Rows.Count& &If Len(D.Range(&E2&)) = 0 Then& & If InStr(1, D.Range(&C2&), K.Range(&A& & i)) && 0 Then D.Range(&E2&).Value = K.Range(&B& & i).Value& &Else& & Exit For& &End If& &Next iEnd Sub但是我加入第二个变量 j的时候循环就出了 1004 错误,代码如下:
Dim D As Worksheet, K As Worksheet
Set D = Worksheets(&D&)
Set K = Worksheets(&K&)
& &For j = 2 To D.UsedRange.Rows.Count
& &&&For i = 1 To K.UsedRange.Rows.Count
& && & If Len(D.Range(&E& & j)) = 0 Then
& && && &&&If InStr(1, D.Range(&C & & j), K.Range(&A& & i)) && 0 Then D.Range(&E & & j).Value = K.Range(&B& & i).Value
& && & Else
& &&&Exit For
& && & End If
& &&&Next i
其实我的思路是:
首相去顶一个项目,把所有的关键字在该项目名称中搜索一边,找到了,填充该关键字归属的KA 然后跳到下一个项目,如果所有的关键字都试一遍还是没找到,就空在那里或者填个“未知”。
求高手指点谢谢。
(54.33 KB, 下载次数: 0)
14:16 上传
(43.73 KB, 下载次数: 0)
14:16 上传
14:35 上传
点击文件名下载附件
8.91 KB, 下载次数: 3
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

我要回帖

更多关于 配合好的怎样形容 的文章

 

随机推荐