vba使用excel公式 VBA怎么在公式中加入变量

查看: 6003|回复: 17
如何在一个过程中调用另外一个过程的变量
阅读权限20
在线时间 小时
写了一个过程:
dim m as intger
...........‘其他代码
另外一个过程:
dim x as double
if m=1 then x=5.4 else x=8
当然上面这个代码不能调用成功
我想问的意思就是怎么在sub b()中 调用sub a()过程中的m值
阅读权限20
在线时间 小时
求关注啊!!
阅读权限20
在线时间 小时
怎么没人回复 ?&&在线等!!急
阅读权限20
在线时间 小时
高手现身啊!!
阅读权限20
在线时间 小时
这个问题有那么难吗? 怎么没人回复呢 ?!!
阅读权限90
在线时间 小时
dim m as intger
...........‘其他代码
另外一个过程:
dim x as double
if m=1 then x=5.4 else x=8
阅读权限20
在线时间 小时
mjzxlmg 发表于
dim m as intger
...........‘其他代码
谢谢你的回复,不过,sub a()中还有其他代码,在sub b()中 我并不想用到其他代码,只要m值,还有别的方法吗?
阅读权限90
在线时间 小时
你不用CALL A这句的话,必须保证 sub a先运行。
阅读权限20
在线时间 小时
mjzxlmg 发表于
你不用CALL A这句的话,必须保证 sub a先运行。
其实我想做的是:
有两个小过程,sub a()&&,sub b() 。
这两个过程里面有很多代码,sub a() 代码运行到最后时,赋值m=1;sub b()代码运行到最后时,赋值m=2 。
现在在sub c()过程中来判断m的值,当m=1时,运行一段代码,当m=2时 运行另一段代码。
就这个意思,求解!!
阅读权限30
在线时间 小时
本帖最后由
11:29 编辑
Public m
sub a()
if m=2 then
sub b()
if m=1 then
end sub复制代码
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师在VBA中使用Excel工作表公式_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
在VBA中使用Excel工作表公式
|0|0|文档简介
Excel专家|
总评分4.4|
浏览量39506
&&在VBA中可以利用Excel工作表函数的强大功能,将VBA和Excel公式与函数联合,使得应用程序更为强大和灵活。本文详细介绍了如何在VBA程序中使用Excel工作表函数,并给出了4个有代表性的应用示例。
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢查看: 7762|回复: 7
[已解决]VBA怎么在公式中加入变量?
初学 VBA 不知道怎么加入变量,高手给指点一下
Dim x As Integer
For x = 2 To 20
Range(&c& & x) = &=SUMPRODUCT(($A$2:$A$20&A2)*(1/COUNTIF($A$2:$A$20,$A$2:$A$20)))+1&
这个A2 怎么写弄城变量?
rebornxldeng发布于
本帖最后由 rebornxldeng 于
08:55 编辑
Range(&c& & x) = &=SUMPRODUCT(($A$2:$A$20& & & Range(&a& & x) & &) *(1/COUNTIF($A$2:$A$20,$A$2:$A$20)))+1&
用VBA语句在单元格中写入公式实际上是以文本格式将公式内容录入单元格;
这也是最开始的双引号后面为什么会紧跟一个等号的原因.
我标蓝的部分是VBA中引用 单元格 的格式.
黄色部分是 公式的文本(中间要录入变量的话,必须在文本的开始和结尾处 使用引号)
蓝色部分会生成一个值,然后黄色部分与该值连起来共同构成一个 完整的可正确计算的 单元格公式.
再弄个简单点的示例 Range(&c2&) = &=sum(& & Range(&c3&) & &,& & Range(&c4&) & &)&
这个知识点理解的难点在于,你是以输入公式的思想在解读,但是这个问题实际上是在单元格中输入文本.
文本1 & 变量1 & 文本2 & 变量2 ... ... & 结束文本
另外,这个知识点了解了即可.其实并不难,实用性也很有限...因为还不如直接在单元格里写公式呢.
Range(&c& & x) = &=SUMPRODUCT(($A$2:$A$20&& & 变量 & &)*(1/COUNTIF($A$2:$A$20,$A$2:$A$20)))+1&
楼主试试,这样成不。
hwc2ycy 发表于
Range(&c& & x) = &=SUMPRODUCT(($A$2:$A$20
Range(&c& & x) = &=SUMPRODUCT(($A$2:$A$20& & & Range(&a& & x) & &) *(1/COUNTIF($A$2:$A$20,$A$2:$A$20)))+1&
可以运行 ,能解释下嘛 为啥 加两个引号。。后面的引号 为什么要加在括号内呢? 加外面就出错了
我才学两天 多体谅下万分感谢
变量嘛,你加在里面工作表不会认为是变量呀,除非你把那个定义一个名称
这个方法就是一个字符串连接了。
&&&本楼为最佳答案&&&
本帖最后由 rebornxldeng 于
08:55 编辑
Range(&c& & x) = &=SUMPRODUCT(($A$2:$A$20& & & Range(&a& & x) & &) *(1/COUNTIF($A$2:$A$20,$A$2:$A$20)))+1&
用VBA语句在单元格中写入公式实际上是以文本格式将公式内容录入单元格;
这也是最开始的双引号后面为什么会紧跟一个等号的原因.
我标蓝的部分是VBA中引用 单元格 的格式.
黄色部分是 公式的文本(中间要录入变量的话,必须在文本的开始和结尾处 使用引号)
蓝色部分会生成一个值,然后黄色部分与该值连起来共同构成一个 完整的可正确计算的 单元格公式.
再弄个简单点的示例 Range(&c2&) = &=sum(& & Range(&c3&) & &,& & Range(&c4&) & &)&
这个知识点理解的难点在于,你是以输入公式的思想在解读,但是这个问题实际上是在单元格中输入文本.
文本1 & 变量1 & 文本2 & 变量2 ... ... & 结束文本
另外,这个知识点了解了即可.其实并不难,实用性也很有限...因为还不如直接在单元格里写公式呢.
3Q我要的就是解释!我才学两天,啥都不知道.
hwc2ycy 发表于
变量嘛,你加在里面工作表不会认为是变量呀,除非你把那个定义一个名称
这个方法就是一个字符串连接了。
-_-他是没把引号的作用方式搞清楚... ...
rebornxldeng 发表于
-_-他是没把引号的作用方式搞清楚... ...
吼吼 你是说 你黄色的前一段 两个引号 算一个 整体 后面的 黄的算一个 ,我用红的标起来的 是我理解错误。。 我前面黄的部分 尾巴的 “ 和 后半部分 头 看做了一个整体。。是这样么
孤单无所谓 发表于
吼吼 你是说 你黄色的前一段 两个引号 算一个 整体 后面的 黄的算一个 ,我用红的标起来的 是我理解错误。 ...
我在回帖的部分新增了一点内容.
你仔细看看.你提出的这个问题的实质是用VBA在单元格里录入文本.
只不过在录入结束后,因为该文本是以等号开头的,所以EXCEL会对文本内容进行计算,从而产生结果.
Powered by查看: 1033|回复: 11
如何设置变量?
阅读权限20
在线时间 小时
& & & & & & & &
本帖最后由 szcougar 于
21:58 编辑
如下代码,如何设置变量并简化一下。本人菜鸟,请多多帮忙。 谢谢。
If Cells(189, &FI&).Value = &Exceed& Or Cells(189, &FI&) = &decision& Or Cells(189, &FI&) = &FAILED& Then
Cells(34, &G&).Value2 = Cells(189, &G&).Value2 & & (Point 6.& & Cells(189, &A&).Value2 & &):& & Chr(10) & Cells(191, &V&).Value2
Else: Cells(34, &G&).EntireRow.Hidden = True
If Cells(192, &FI&).Value = &Exceed& Or Cells(192, &FI&) = &decision& Or Cells(192, &FI&) = &FAILED& Then
Cells(35, &G&).Value2 = Cells(192, &G&).Value2 & & (Point 6.& & Cells(192, &A&).Value2 & &):& & Chr(10) & Cells(194, &V&).Value2
Else: Range(&G35&).EntireRow.Hidden = True
If Cells(195, &FI&).Value = &Exceed& Or Cells(195, &FI&) = &decision& Or Cells(195, &FI&) = &FAILED& Then
Cells(36, &G&).Value2 = Cells(195, &G&).Value2 & & (Point 6.& & Cells(195, &A&).Value2 & &):& & Chr(10) & Cells(197, &V&).Value2
Else: Range(&G36&).EntireRow.Hidden = True
后面同样只是相应的单元格变化
(83.38 KB, 下载次数: 1)
21:57 上传
点击文件名下载附件
阅读权限50
在线时间 小时
Dim x%, y%
& & For x = 189 To 195 Step 3
& && &&&Select Case Cells(x, &fi&).Value
& && && && && & Case &Exceed&, &decision&, &FAILED&
& && && && && && &&&Cells(y, &G&).EntireRow.Hidden = True
& && &&&End Select
& && &&&y = y + 1
没附件只能这样猜下。
阅读权限20
在线时间 小时
Dim x%, y%
谢谢帮忙!
赋值的那句该怎么加入呢?
G34的值=G189+A189+V191;
G35的值=G192+A192+V194;
G34的值=G195+A195+V197;。。。
阅读权限50
在线时间 小时
Dim x%, y%
& & For x = 189 To 195 Step 3
& && &&&Select Case Cells(x, &fi&).Value
& && && && && & Case &Exceed&, &decision&, &FAILED&
& && && && && && &&&Cells(y, &G&).value=cells(x,&g&).value+cells(x,&a&).value+cells(x+3,&v&).value
& && && && && && &&&Cells(y, &G&).EntireRow.Hidden = True
& && &&&End Select
& && &&&y = y + 1
阅读权限20
在线时间 小时
Dim x%, y%
不好意思 还请教一下:
若 FI189, 192 或195的内容改变时就触发事件,改加哪些语句呢? 谢谢!!
阅读权限50
在线时间 小时
szcougar 发表于
不好意思 还请教一下:
若 FI189, 192 或195的内容改变时就触发事件,改加哪些语句呢? 谢谢!!
最好上个附件.这个用工作表事件!
Worksheet_Change
阅读权限20
在线时间 小时
最好上个附件.这个用工作表事件!
Worksheet_Change
谢谢你的耐心和无私。 附件已上传了。
阅读权限50
在线时间 小时
搞不懂为什么要这样做表!这样的格式对后期数据处理很麻烦!
代码给你写里面了不知道是不是这个意思。
22:26 上传
点击文件名下载附件
82.81 KB, 下载次数: 3
阅读权限20
在线时间 小时
搞不懂为什么要这样做表!这样的格式对后期数据处理很麻烦!
代码给你写里面了不知道是不是这个意思。
很好用了。 谢谢你的帮助!!!
的确合并太多的单元格了。
阅读权限20
在线时间 小时
搞不懂为什么要这样做表!这样的格式对后期数据处理很麻烦!
代码给你写里面了不知道是不是这个意思。
经过多次测试 发现不光是那几个单元格的值变化会触发时间,其他任意的单元格的值变化都会触发,这样有些有些影响速度。
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 4776|回复: 7
如何将函数公式写入到宏中
阅读权限20
在线时间 小时
现有一示例表(参见附件),想要实现输入产品代码之后自动填充出产品的信息,并且自动统计商品销售数量,已经知道了可以采用VLOOKUP和COUNTIF函数公式来解决。但是为避免误操作造成对单元格使用的公式进行修改和提高单元格计算速度,想要将单元格中的公式用宏的形式体现出来,也就是说将这两个公式写入到宏命令中,因小弟对宏不甚了解,还望各位大神在编写的时候能够添加一定的注释,以备微调表格时可以自己试着调整。同时由于安全性问题可能导致做好的表格放到其他机器中不能直接运行,还望各位大神能否给出一个可以不用调整安全性直接运行宏的办法。
(2.97 KB, 下载次数: 37)
09:31 上传
点击文件名下载附件
阅读权限100
在线时间 小时
请见附件。
16:54 上传
点击文件名下载附件
9.19 KB, 下载次数: 192
阅读权限70
在线时间 小时
工具--宏--录制宏--单元格公式--数组公式(三键同按)--停止录制(完成)
阅读权限50
在线时间 小时
输公式时自己录一个宏,把代码直接拷过去用就行。
阅读权限20
在线时间 小时
sevenstar 发表于
输公式时自己录一个宏,把代码直接拷过去用就行。
能说的详细点吗?
阅读权限100
在线时间 小时
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count & 1 Then Exit Sub
If Target.Column && 4 Or Target.Row & 2 Then Exit Sub
Dim d, Arr, i&, aa
Set d = CreateObject(&Scripting.Dictionary&)
Arr = Sheet3.[a1].CurrentRegion
For i = 2 To UBound(Arr)
& & d(Arr(i, 4)) = d(Arr(i, 1)) & Arr(i, 2) & &,& & Arr(i, 3) & &,& & Arr(i, 13)
Next
If d.exists(Target.Value) Then
aa = Split(d(Target.Value), &,&)
Target.Offset(0, 1).Resize(1, 3) = aa
Arr = Sheet2.[a1].CurrentRegion
For i = 2 To UBound(Arr)
& & If Arr(i, 2) = Target.Value Then
& && &&&Sheet2.Cells(i, 5) = Sheet2.Cells(i, 5) + 1
& & End If
Next
End If
End Sub
复制代码
阅读权限20
在线时间 小时
蓝桥玄霜 发表于
请见附件。
大神正解,能否给代码加以注释呢? 方便使用中微调(比如自动填充的信息内容多少,列的位置调整等),小弟在此谢过了!!!
阅读权限20
在线时间 小时
& & & & & & & &
蓝桥玄霜 发表于
Sheet2.Cells(i, 5) = Sheet2.Cells(i, 5) + 1采用累加的办法倒是可以实现计数,但是如果在录入中将代码录错后删掉重录时已经累加的计数不会随之减少,这样就会出现计数比实际多的错误。并且删除产品代码之后,后面的产品信息不会自动消除,需要人为删除,不够方便。最后,该段宏会要求产品代码为必须为数字,否则检索不到信息,这样就会造成如果产品代码为文本格式则无法使用(比如产品代码为001001则必须为文本格式),能否优化宏,使其不限制产品代码格式。 坐等蓝版高解!!!
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

我要回帖

更多关于 vba使用excel公式 的文章

 

随机推荐