Excel-VBA-质量问题可视化管理-13-新增问题1

系统:Windows 10
软件:Excel 2016

  • 本系列是假设一种应用场景,键盘质量检查中,发现问题,如何在键盘图片上进行标记和后续的跟踪管理
  • 其实也同样适用在其它应用场景,尤其与位置相关的质量特性管理上
  • 核心知识点,用形状表示问题

Part 1: 项目功能介绍(更新)

  1. 上一个部分的功能已经实现,重复的部分不再赘述
  2. 接下来的几篇文章说一个延伸功能。之前的文章中,1个问题只有一个形状来表征,或者圆形或者矩形。当一个问题需要几个形状的时候,如何实现。这一部分涉及功能如下
    • 多形状定义一个问题,采用直线来做,当然也可以采用其它形状
    • 删除问题
    • 查询问题

Part 2: 拟实现功能描述

  1. 本次拟实现功能:新增一个问题,该问题可以使用任意条线段来表示

动图
请添加图片描述

静图
请添加图片描述

Part 3:基本逻辑

  1. 因为不知道一个问题由几个线段构成,所在在数据库存储中采用两个部分构成,类似形成1对n关系的两张表格
    - J-L列用来存储问题,这里只是示意,没有放太多列
    - N-W列用来存储问题对应的形状。其中N列表示问题ID列,O列用来存储形状对应ID。当一个问题存在多个形状时,N列就会是同一个ID,O列用不同ID来表示
  2. 如何实现问题到底有几段线段构成呢?这里B16单元格用来存储正在操作的问题ID,新增的线段默认都是与这个ID关联
    - 如果是新的问题,应该先手动把这个ID清空
    - 如果是在老问题上新增线段表示,只需要把老问题的ID写入此单元格即可
  3. 新增完线段后,需要把最新的位置保存下来,这个将在下一篇文章说

Part 4:代码

Sub 新增问题()
    Set sht = ThisWorkbook.Worksheets("问题管理")
    problemID = sht.Range("B16")
    
    flag = 0
    If problemID = "" Then
        flag = 1
        problemID = "P-" & getUniqueId()
        
        ' 把新增的问题ID写入
        sht.Range("B16") = problemID
    End If
    
    Set newShape = sht.Shapes.AddConnector(msoConnectorStraight, 200, 800, 300, 700)
    shapeName = newShape.Name
    
    With newShape.Line
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 0, 0)
        .Transparency = 0
        .Weight = 2.25
    End With
    
    ' 问题库信息
    If flag = 1 Then
        maxRow = sht.Cells(Rows.Count, "J").End(xlUp).Row
        inputRow = maxRow + 1
        
        sht.Cells(inputRow, "J").Value = problemID
    End If
    
    ' 形状信息
    maxRow2 = sht.Cells(Rows.Count, "N").End(xlUp).Row
    inputRow2 = maxRow2 + 1
    sht.Cells(inputRow2, "N").Value = problemID
    
    shapeID = "S-" & getUniqueId()
    sht.Cells(inputRow2, "O").Value = shapeID
    sht.Cells(inputRow2, "P").Value = shapeName

    
End Sub

代码截图
请添加图片描述

Part 5:部分代码解读

  1. newShape.Line.Weight = 2.25设置线段宽度,代码是通过录制宏获取,如下图的过程

录制宏
请添加图片描述


  • 更多学习交流,可加小编微信号learningBin

更多精彩,请关注微信公众号
扫描二维码,关注本公众号

公众号底部二维码.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值