vb编程for循环理解(vb程序设计for循环)

vb编程for循环理解(vb程序设计for循环)接上一篇 当我完成了自动数据整理后 下一个目标是完成工艺分工表的自动整理 我想要实现的功能是 将基础数据表 A 列中代号为 10 位图号的单元格值挑出来 填入工艺分工表的 A 列中 再将图号对应的工艺分工填入工艺分工表的 B 列 这个功能的难点是 基础数据表的 A 列中 10 位图的单元格不是连续的 如上图所示 10 位图号的单元格是不规律出现的 因此我不能用之前的方法简单的用循环进行赋值 经过思考

大家好,我是讯享网,很高兴认识大家。



接上一篇

当我完成了自动数据整理后,下一个目标是完成工艺分工表的自动整理

我想要实现的功能是,将基础数据表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 bomZi

data-pid=“scWqr4l”> 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软件中运行时,会出现报错的问题。

基于上述问题,我考虑,如何在自动整理数据前,增加一个数据校验的功能,使得发现错误后自动报错并停止程序运行,下一篇我们来讨论如何实现这个功能。

小讯
上一篇 2025-05-25 13:10
下一篇 2025-06-09 20:37

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/178952.html