如何利用Excel宏编写一个小程序 求助,谢谢!
最近工作需要领导要求我做一个小程序,在Excel里面编,而我无任何Excel宏编写经验,只能靠以前的一些VB知识写一些,但不知道如何放到Excel里,请大家帮忙!万分感激...
最近工作需要领导要求我做一个小程序,在Excel里面编,而我无任何Excel 宏编写经验,只能靠以前的一些VB知识写一些,但不知道如何放到Excel 里,请大家帮忙!万分感激!
这个程序的目的是为了计算流水线上物料的总冲洗次数
目前一共有四种物料:A B C D
流水线上四种物料源源不断流动冲洗,冲洗原则需满足两点:
1.前后是不同物料即冲洗
2.若前后为同一种物料则冲洗次数:A为1个1冲,B为3个一冲,C为4个一冲,D为6个一冲
举例为:
假设流水线上目前的物品为: A B C D 则冲洗次数为3
假设流水线上目前的物品为: A B B B B C D 则冲洗次数为4次(A到B冲一次,过了3个B后冲一次,B到C冲一次,C到D冲一次)
假设流水线上目前的物品为: B C C D D D D D D D D D DA A C 则冲洗次数为5次
以此类推
目前要做的就是,假设给流水线上四个物料以任意一种数量排序(无先后顺序)(即表格可以列成一列),需要计算总共的冲洗次数。
我的VB程序想法是:将流水线上所有物料做成excel一列,单元格分别为A1 A2 A3...A(i)
If A(i+1)<>A(i), Then c=c+1 (c为计数)
除此以外:
if A(i)=A(i+1)=A, then d=d+1(d为计数)
if A(i)=A(i+1)=A(i+2)=B, then e=e+1, i=i+2
if A(i)=A(i+1)=A(i+2)=A(i+3)= C , then f=f+1, i=i+4
if A(i)=A(i+1)=A(i+2)=A(i+3)=A(i+4)=A(i+5)= D ,then g=g+1,i=i+6
最后计数的结果为: c+d+e+f+g
我这个vb编程想法很幼稚,我就是不知道在excel 宏里怎么编写语句,来求助各位大虾们,望帮忙,万分感激!!!! 展开
这个程序的目的是为了计算流水线上物料的总冲洗次数
目前一共有四种物料:A B C D
流水线上四种物料源源不断流动冲洗,冲洗原则需满足两点:
1.前后是不同物料即冲洗
2.若前后为同一种物料则冲洗次数:A为1个1冲,B为3个一冲,C为4个一冲,D为6个一冲
举例为:
假设流水线上目前的物品为: A B C D 则冲洗次数为3
假设流水线上目前的物品为: A B B B B C D 则冲洗次数为4次(A到B冲一次,过了3个B后冲一次,B到C冲一次,C到D冲一次)
假设流水线上目前的物品为: B C C D D D D D D D D D DA A C 则冲洗次数为5次
以此类推
目前要做的就是,假设给流水线上四个物料以任意一种数量排序(无先后顺序)(即表格可以列成一列),需要计算总共的冲洗次数。
我的VB程序想法是:将流水线上所有物料做成excel一列,单元格分别为A1 A2 A3...A(i)
If A(i+1)<>A(i), Then c=c+1 (c为计数)
除此以外:
if A(i)=A(i+1)=A, then d=d+1(d为计数)
if A(i)=A(i+1)=A(i+2)=B, then e=e+1, i=i+2
if A(i)=A(i+1)=A(i+2)=A(i+3)= C , then f=f+1, i=i+4
if A(i)=A(i+1)=A(i+2)=A(i+3)=A(i+4)=A(i+5)= D ,then g=g+1,i=i+6
最后计数的结果为: c+d+e+f+g
我这个vb编程想法很幼稚,我就是不知道在excel 宏里怎么编写语句,来求助各位大虾们,望帮忙,万分感激!!!! 展开
2个回答
展开全部
假设你将数据放在A列
那么你可以在菜单栏的空白处右键单击,选中“控件工具箱”,点一下“控件工具箱”中的“命令按钮”,然后在任意单元格点击,即出现一个按钮,双击此按钮,跳转到宏编辑器,输入以下内容
x = Cells(1, 1) '存储临时数据
y = 0 '计重复次数
z = 0 '计数
For i = 2 To 16 '16改成总共行数
If (Cells(i, 1) = x And y < 3) Then
y = y + 1
Else
y = 0
z = z + 1
x = Cells(i, 1)
End If
Next
MsgBox z
那么你可以在菜单栏的空白处右键单击,选中“控件工具箱”,点一下“控件工具箱”中的“命令按钮”,然后在任意单元格点击,即出现一个按钮,双击此按钮,跳转到宏编辑器,输入以下内容
x = Cells(1, 1) '存储临时数据
y = 0 '计重复次数
z = 0 '计数
For i = 2 To 16 '16改成总共行数
If (Cells(i, 1) = x And y < 3) Then
y = y + 1
Else
y = 0
z = z + 1
x = Cells(i, 1)
End If
Next
MsgBox z
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询