接上一篇
当我完成了自动数据整理后,下一个目标是完成工艺分工表的自动整理
我想要实现的功能是,将基础数据表A列中代号为10位图号的单元格值挑出来,填入工艺分工表的A列中,再将图号对应的工艺分工填入工艺分工表的B列。
这个功能的难点是,基础数据表的A列中10位图的单元格不是连续的,如上图所示,10位图号的单元格是不规律出现的,因此我不能用之前的方法简单的用循环进行赋值。经过思考,我要实现这个功能需要用到循环嵌套。
基本思路:
1. 先用if判断语句,用len函数判断基础数据表的A3单元格内的数据是否为10个字符,如果是,则将A3单元格的值填入“工艺分工表”的A4单元格,将N3单元格的工艺分工值填入“工艺分工表”的C4单元格,在“工艺分工表”B4单元格填入版本号“A”, 如果否,则结束判断。
2. 用for循环变量i,将指针移动至A4单元进行下一轮判断,以此类推,完成对基础数据表的A列单元格值的逐个判断。
3. 在循环体中增加一个变量h,初始值为4,用做工艺分工表的指针,用h =h+1的方法,每执行一次工艺分工表的填写,h 的值就增加1,使得A4单元格填完后,下一次能够填写至A5单元格
具体代码如下:
dim h
h=4
for i = 3 to j
if Len(sheet3.range("A" & i )) = 10 then
sheet2.range("A" & h) = sheet3.range("A" & i)
sheet2.range("C" & h) = sheet3.range("N" & i)
sheet2.range("B" & h) = "A"
h = h + 1
end if
next
借助变量h,在此完成了两个表格异步指针的功能。
截止目前,我完成了从基础数据表向工艺BOM表和工艺分工表,两个数据表的自动转换。那么下一问题是,当完成了一个产品的数据整理后,表格中是填满数据的,如果我要开始下一个表格制作,必然要先删除前一个产品的数据,这时就诞生了自动清理旧数据的想法。
实现功能的思路:这个功能很简单,先搞清楚每个表格有几行,让后把多余的行删掉就行了,也可以预估一个足够大的行数,一次性删除。
我用的是第一种方法,先用do while ..... loop 算清楚每个表有多少行,再用清空单元格的值。
具体代码如下:
Sub 清除旧数据()
'清空旧数据
Dim bom_Zi As Integer
Dim bom_h As Integer
'获得BOM结构导入表数据总行数
bom_Zi = 1
Do While Sheet1.Range("A" & bom_Zi) <> ""
bom_Zi = bom_Zi + 1
Loop
'获得BOM结构导入表数据总行数结束
For bom_h = 4 To bom_Zi
Sheet1.Range("A" & bom_h, "T" & bom_h) = "" '清空BOM结构导入表数据,从A列到T列
Next
'获得工艺分工导入表数据总行数
bom_Zi = 1
Do While Sheet2.Range("A" & bom_Zi) <> ""
bom_Zi = bom_Zi + 1
Loop
For bom_h = 4 To bom_Zi
Sheet2.Range("A" & bom_h, "C" & bom_h) = "" '清空工艺分工导入表数据,从A列到C列
Next
'获得基础数据表数据总行数
Do While Sheet4.Range("A" & bom_Zi) <> ""
bom_Zi = bom_Zi + 1
Loop
For bom_h = 3 To bom_Zi
Sheet4.Range("A" & bom_h, "O" & bom_h) = "" '清空基础数据表数据,从A列到O列,
Next
End Sub
在基础数据表中插入一个按钮,命名为“清空旧数据”,设置点击执行上述宏代码。
此时,在基础数据表中共有两个按钮,一个是“清空旧数据”,另一个是“自动整理数据”,整个VBA程序的基本功能都建立起来了,实践过程中,我发现了一个新问题,即:有些10位图号的工艺分工单元格是空的,有些物料名称单元格是空的,这样生成的数据导入表,在新PLM软件中运行时,会出现报错的问题。
基于上述问题,我考虑,如何在自动整理数据前,增加一个数据校验的功能,使得发现错误后自动报错并停止程序运行,下一篇我们来讨论如何实现这个功能。
到此这篇vb编程for循环理解(vb程序设计for循环)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/androidbc/37817.html