MRP(VBA系列):1.检查生产计划中的设备是否有BOM

文章讲述了如何使用VBA在Excel中检查生产计划表格与BOM列表的对应关系,若发现有设备缺少BOM,程序会给出警告。提供了两种解决方案,包括使用`Dim`数组和字典来存储数据并进行比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在所有运行的前面,我需要先做一个检查:生产计划中的设备是否有BOM,如果有的设备没有BOM,我不希望程序继续!


Tips:所有代码都是为目前任职公司编写,极大概率不适合其他公司,在这里发布:首先是记录;其次才是分享,望理解!

这里用两个方案,选择其中一种就可以了!

方案一:

Dim arr, brr
Dim i, j, k
Dim str
Dim d As New Dictionary     'the "Microsoft scripting runtime" need to be ticked if you want to define a new dictiory
Dim t

t = Timer
arr = Sheets("Plan").UsedRange
brr = Sheets("BOM").UsedRange

For i = 2 To UBound(brr)
    str = CStr(brr(i, 1))
    If Not d.Exists(str) Then
        d(str) = i
    End If
Next

k = 0
str = ""
For i = 2 To UBound(arr)
    If Not d.Exists(CStr(arr(i, 2))) Then
        str = str & CStr(arr(i, 2)) & "----" & i & "行" + vbLf
        k = k + 1
    End If
Next

If k > 0 Then
    MsgBox "存在以下设备没有找到BOM:" & vbLf & vbLf & str, vbOKCancel, "Warning"
    Exit Sub
End If

REQ.REQ


MsgBox "所有程序运行完毕,耗时" & Format(Timer - t, "#00.00") & " secords", vbOKOnly


End Sub

方案二:

Sub secondV()


Dim i, j, k
Dim arr, brr, crr()
Dim str
Dim d

Set d = CreateObject("scripting.dictionary")
arr = Sheets("Plan").UsedRange
brr = Sheets("BOM").UsedRange

For i = 2 To UBound(brr)
    str = brr(i, 1)
    If d(str) = "" Then
        d(str) = i
    End If
Next
'这样d.keys,和d.items就出来了
k = 0
For i = 2 To UBound(arr)
    If Not d.Exists(arr(i, 1)) Then
        k = k + 1
        ReDim Preserve crr(1 To 2, 1 To k)
        crr(1, k) = arr(i, 1)
        crr(2, k) = i
    End If
Next
Debug.Print k

'Q:i会到ubound(arr)+1才结束,那么i到达ubound(arr)+1的时候,循环主体的语句还实施吗?
str = ""

If k > 0 Then
    For i = 1 To k
        str = str & crr(1, i) & " : " & crr(2, i) & vbLf
    Next
    MsgBox str & vbLf & "以上SKU没有BOM,请检查", vbOKCancel
End If
End Sub

标题SpringBoot构建的人工智能时代个人计算机安全防护科普系统研究AI更换标题第1章引言阐述研究背景、意义,分析国内外在个人计算机安全防护科普方面的现状,并介绍论文研究方法和创新点。1.1研究背景与意义说明人工智能时代个人计算机安全防护的重要性。1.2国内外研究现状概述国内外在个人计算机安全防护科普系统的研究进展。1.3研究方法与创新点介绍本文采用的研究方法以及创新之处。第2章相关理论概述SpringBoot框架、人工智能技术及计算机安全防护的理论基础。2.1SpringBoot框架简介介绍SpringBoot框架的特点及其在科普系统中的应用。2.2人工智能技术概述阐述人工智能技术的基本原理及其在安全防护中的应用。2.3计算机安全防护理论分析个人计算机安全防护的基本原理和方法。第3章科普系统设计详细介绍基于SpringBoot的人工智能时代个人计算机安全防护科普系统的设计思路和实现过程。3.1系统架构设计阐述科普系统的整体架构设计及各模块功能。3.2科普内容策划与设计分析科普内容的选择、编排和设计原则。3.3交互功能设计介绍科普系统的交互功能,提升用户体验。第4章系统实现与测试详述科普系统的实现过程,包括前端开发、后端实现和系统测试等环节。4.1前端开发实现介绍前端界面的设计、开发和实现过程。4.2后端功能实现详述后端功能的实现,包括数据处理、安全防护策略等。4.3系统测试与优化阐述系统测试的方法、过程和结果,以及针对测试结果的优化措施。第5章应用效果评估通过实际应用案例,评估科普系统在提升个人计算机安全防护意识方面的效果。5.1应用案例选取选择具有代表性的应用案例进行分析。5.2效果评估方法介绍评估科普系统效果的方法和指标。5.3评估结果分析对评估结果进行详细分析,验证科普系统的有效性。第6章结论与展望总结研究成果,指出研究的不足之处,并展望未来的研究方向。6.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值