系统:Windows 10
软件:Excel 2016
- 本系列是假设一种应用场景,键盘质量检查中,发现问题,如何在键盘图片上进行标记和后续的跟踪管理
- 其实也同样适用在其它应用场景,尤其与位置相关的质量特性管理上
- 核心知识点:在背景图片特定位置插入一个圆圈(表示问题点),并对圆圈进行进行颜色等特性的改变
Part 1: 项目功能介绍(更新)
- 在写的过程中,发现需要修正一下上次的功能,功能模块如下
- 录入问题
- 录入尺寸问题,标记圆形
- 录入颜色问题,标记矩形
- 清空显示问题
- 保存当前状态:新增的问题点位置和颜色都是动态变化的,需要保存最新状态
- 删除问题
- 基于问题唯一ID号删除某问题
- 查询问题,基于以下三个条件逻辑与进行查询,若无选择条件,默认显示所有问题
- 基于问题状态:已解决,未解决
- 问题种类:尺寸,颜色
- 时间节点:超期,未超期
- 考虑到操作的便利性,对于录入问题部分,设置快捷键
操作界面(仅做示意,并不表示真有质量问题;如有侵权请联系我)
Part 2: 拟实现功能描述
- 本次拟实现基于问题ID号,删除某问题
- 基本逻辑如下:
- 删除该ID对应行的信息
- 调用上一章节的功能,显示数据库中所有的问题
- 基于ID删除问题,要求每一个ID必须是唯一的。
- 按照之前文章中的那种方法
sht.Cells(inputRow, "J").Value = inputRow - 2
即ID号是行数-1 - 这样导致采用此方法删除后,下一次生成的ID号会出现重复的情况
- 基于这样的问题,将ID问题产生机制进行优化,采用问题生成当时的时间作为ID号,细化到秒,具体代码如下。这样对于单机版的该系统,ID号就不会重复了
- 按照之前文章中的那种方法
Function getUniqueId()
currentTime = Now()
uniqueId = Application.Text(currentTime, "yy-mm-dd hh:mm:ss")
uniqueId2 = Application.Substitute(uniqueId, "-", "")
uniqueId3 = Application.Substitute(uniqueId2, ":", "")
uniqueId4 = Application.Substitute(uniqueId3, " ", "")
getUniqueId = "id-" & CStr(uniqueId4)
Debug.Print (uniqueId4)
End Function
代码截图
效果动图
Part 3:代码
Sub delProblem()
Set sht = ThisWorkbook.Worksheets("问题管理")
questionID = sht.Range("E16")
maxRow = sht.Cells(Rows.Count, "Q").End(xlUp).Row
For i = 3 To maxRow Step 1
existsID = sht.Cells(i, "J")
If existsID = questionID Then
sht.Range("J" & i & ":X" & i).Select
Selection.Delete Shift:=xlUp
End If
Next
Call showAllProblem
End Sub
代码截图
Part 4:部分代码说明
Selection.Delete Shift:=xlUp
删除选择区域,然后下方单元格上移。这段代码是通过录制宏生成的
删除,下方单元格上移
- 更多学习交流,可加小编微信号
learningBin
更多精彩,请关注微信公众号
扫描二维码,关注本公众号