求EXCEL的VBA语句,包含判断和循环

根据下图中的左边的那个班数,在右边的对应的机台后面的空格内填入相应的空格数,内容是单号,比如AD-1只有一个班数,即在右边AD-1后面填入一个5102-140312025... 根据下图中的左边的那个班数,在右边的对应的机台后面的空格内填入相应的空格数,内容是单号,比如AD-1只有一个班数,即在右边AD-1后面填入一个5102-140312025,如果是XH-1,则在右边的XH-1后面填入三个单元格的5102-140312025,还有一个注意,就是单号的那组数据和后面的机台排班是在不同的表格,暂定为sheet1和sheet2吧,列名可以自定,求救啊各位大侠 展开
 我来答
jjchangyuan
2014-04-09 · TA获得超过1.1万个赞
知道大有可为答主
回答量:4278
采纳率:90%
帮助的人:1063万
展开全部

这个问题不会VBA,用函数就可解决。

假定原数据在sheet1的ABC三列,排班在sheet2从A列开始

B3

=IF(COLUMN(A1)<=VLOOKUP($A3,Sheet1!$B:$C,2,),VLOOKUP($A3,IF({0,1},Sheet1!$A$1:$A$100,Sheet1!$B$1:$B$100),2,),"")  右拉填充,下拉填充

追问
我试了一下,结果是有的,但是有重复的机台名称的时候,只会出来一个结果,例如光-5应该是有两个单号的,结果就只出来一个单号啊,应该是四个单元格都有内容的,但是只有三个有;还有,第一个表的机台号可能没有顺序的,也会有重复的,遇到这样的情况的时候貌似你的方式不行啊
追答
没注意重复的情况!
万年金刚钻
2014-04-09 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3399万
展开全部

貌似有两个问题:

  1. 暂定的Sheet1和Sheet2,相同字段是哪个?比如说是机台?

  2. 班数的1,2,3,……8……12……怎么对应到二(早)、二(晚)、三(早)、三(晚)……或者,只要依次填充满班数即可?

看数据的第二列【机台】,有两个“光-5”,是不是数据有误?如果不是有误那该如何处理?

单号列之间的空白行建议去除(主要是由于实际工作中单号的数量是可变的,空行作为重要的结束标志,VBA可以用于判断是否搜索完毕。否则就要在VBA或者某个单元格指定搜索区域的高度,对于使用者而言增加了操作步骤,而数据本身也降低了规范性)

更多追问追答
追问
sheet1和sheet2只是自己定义的  也可以是同一张表,相同字段是机台,也就是根据机台编号去判定第一列的单要几个班次;班数只要依次填入即可,但是要满足填入的单元格个数是班数个数,内容是单号

空白行可以删除,两个光-5是因为前面的单号不一样,要用同一个机台。
追答

明白。只是不知道 光-5 怎样处理呢?附件为一个VBA,效果如图:


代码:


注意根据实际的Sheet名、和数据范围定义VBA中的Set语句的值

注意,不知道类似“光-5”如何处理,这里的该类数据会被留下最后找到的所覆盖。你需要指定相应的处理逻辑在此VBA中调整。如有需要,可加Q14873-46335讨论

祝你顺利



本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式