如何在excel里定义VBA中的变量与公式呢?(请不要看反) 5

箱型单位计价公式普通箱厘米(长+宽+5)*(宽+高+3)*2*单价/10000全翼箱厘米(长+宽+5)*(2*宽+高+3)*2*单价/10000半翼箱厘米(长+宽+5)*... 箱型 单位 计 价 公 式
普通箱 厘米 (长+宽+5)*(宽+高+3)*2*单价/10000
全翼箱 厘米 (长+宽+5)*(2*宽+高+3)*2*单价/10000
半翼箱 厘米 (长+宽+5)*(1/2*宽+高+3)*2*单价/10000
半全翼箱 厘米 (长+宽+5)*(1/2*宽+高+3)*2*单价/10000
天地箱 厘米 (2*高+长+3)*(2*高+宽+3)*单价*1.55/10000

上述为excel里面的内容,如何使用vba进行扫描,当选择了箱型时,自动选取对应的公式进行进算。前提是不用条件选择,因为我的公式会有很多,我不想对VBA内部进行无止境的条件和公式的增加。(你可以想象,如果有100条公式,那么在vba里就要增加相对应的条件数目,那不是我想要的,我想要的是vba只要进行一次性编辑,然后通过excel开放对vba的编辑)
换句话说,就是让excel变成一个编辑平台,只要在excel里增加了公式,就可以是使用,也就是说不用再次编辑vba,编辑设置向使用者开放,效果类似于vlookup的用法,但是结果是在vba内部表示,我前段时间也提过类似的问题,但是没有得到我想要的答案,求大虾赐教。可能我的提问有点古怪,若没能理解我的问题,请HI我。在这里我先求有理解我的问题的大虾出现,谢谢。
还是有很多不理解我的问题,重点是那个是数据库,我只要增加或者修改公式即可,我所有的计算都是指向这个数据库,不是单独的进行一个单元格的计算,而且我的问题还涉及到变量自定义的问题,所以希望各位理解清楚我的问题。我不需要做人为的选择,yjhitxu1132 就明白我的意思,那个是我想要的结果。
展开
 我来答
xwj_5555
2011-01-19
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部

插入一个组合框控件是最好 的了!添加组合框的changeg事件!这样每次你进行一次下拉数据选择时就进行一次多好! 

真的不太明白你想要实现什么!

或者你可以会用一个简单的循环语句在一列数据中查找你输入到某一位置的值如“普通箱”   如果找到刚执行改值在列位置偏移后的公式

要是这样的话就太容易实现了!按理你都能熟练数据库的操作不应该会的这样的问题能难住

Jimi_wanderer
2011-01-28
知道答主
回答量:19
采纳率:0%
帮助的人:17.1万
展开全部
sheet1中 列出你的商品
商品 价格
普通箱
全半翼箱
半全翼箱
天地箱

sheet2中列出计算公式
普通箱 (长+宽+5)*(宽+高+3)*2*单价/10000
全翼箱 (长+宽+5)*(2*宽+高+3)*2*单价/10000
半翼箱 (长+宽+5)*(1/2*宽+高+3)*2*单价/10000
半全翼箱 (长+宽+5)*(1/2*宽+高+3)*2*单价/10000
天地箱 (2*高+长+3)*(2*高+宽+3)*单价*1.55/10000

在sheet1 中加入按键指定宏 遍历sheet1中A列中商品 用vlookup 在表2中查询对应计价方法 并填充入shee1 B列 如有新商品种类和计价方法的添加 只需在sheet2中加入 OK

时间关系 代码不写了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aposun
2011-01-17 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:90.7万
展开全部
没有很明白你的意思,是不是这个意思:

Sub 自定义()
'这里需要设定一下长宽高以及单价的数值
For i = 2 To 100 '从第2行开始到第100行,可以自行设定始末行
If Cells(i, 1) = "" Then
'什么都不做
ElseIf Cells(i, 1) = "普通箱" Then
Cells(i, 3) = (长 + 宽 + 5) * (宽 + 高 + 3) * 2 * 单价 / 10000
ElseIf Cells(i, 1) = "全翼箱" Then
Cells(i, 3) = (长 + 宽 + 5) * (2 * 宽 + 高 + 3) * 2 * 单价 / 10000
ElseIf Cells(i, 1) = "半翼箱" Then
Cells(i, 3) = (长 + 宽 + 5) * (1 / 2 * 宽 + 高 + 3) * 2 * 单价 / 10000
ElseIf Cells(i, 1) = "半全翼箱" Then
Cells(i, 3) = (长 + 宽 + 5) * (1 / 2 * 宽 + 高 + 3) * 2 * 单价 / 10000
ElseIf Cells(i, 1) = "天地箱" Then
Cells(i, 3) = (2 * 高 + 长 + 3) * (2 * 高 + 宽 + 3) * 单价 * 1.55 / 10000
Else
Cells(i, 3) = "尚未定义"
End If
Next i
End Sub
Next i
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liukan12
2011-01-18 · 超过26用户采纳过TA的回答
知道答主
回答量:93
采纳率:100%
帮助的人:48.6万
展开全部
这个简单 你不如直接做一个用户控件
在上面贴上这几个标签,然后在公式栏下面使用文本框控件,然后把text属性设置成你要表达的公式的值就行了
一次计算出所有的类型的大小不是更好?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yjhitxu1132
2011-01-17 · TA获得超过2001个赞
知道小有建树答主
回答量:1735
采纳率:0%
帮助的人:999万
展开全部
我明白你的意思,你是想让VBA不改动.你在工作表里面修改你的公式或者是增加公式,让VBA自动去查找各种箱子所对应的公式.然后填进你需要的地方,对吧.200分.帮你解决.绝对让你满意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式