Excel-VBA-质量问题可视化管理-14-获取线段位置失败

系统:Windows 10
软件:Excel 2016

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

Part 1: 项目功能介绍

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

Part 2: 拟实现功能描述

  1. 本次拟实现功能:新增一个问题后,直线段需要重新移动,最后需要将这个位置保存起来。
    • AddConnector(type、 BeginX、 BeginY、 EndX, EndY)
    • type因为一直是直线,就不需要改动了msoConnectorStraight
    • 但是如何获取BeginX、 BeginY、 EndX, EndY这4个值呢?
  2. 尝试过采用Debug.Print ("EndX =" & newShape.EndX),发现不可行

报错
请添加图片描述

Part 3:测试

  1. 参考之前的方法,获取Left,Top,Width,Height,以及这些参数和我们需要的BeginX、 BeginY、 EndX, EndY关系是什么呢?

Part 4:代码

Sub Test()
    Set sht = ThisWorkbook.Worksheets("测试3")
    
    Set newShape = sht.Shapes.AddConnector(msoConnectorStraight, 200, 800, 500, 950)
    Debug.Print ("形状1")
    Debug.Print ("Left =" & newShape.Left)
    Debug.Print ("Top =" & newShape.Top)
    Debug.Print ("Width =" & newShape.Width)
    Debug.Print ("Height =" & newShape.Height)
    Debug.Print (Chr(10))
    
    Set newShape1 = sht.Shapes.AddConnector(msoConnectorStraight, 200, 800, 500, 650)
    
    Debug.Print ("形状2")
    Debug.Print ("Left =" & newShape1.Left)
    Debug.Print ("Top =" & newShape1.Top)
    
    Debug.Print ("Width =" & newShape1.Width)
    Debug.Print ("Height =" & newShape1.Height)
    Debug.Print (Chr(10))
    
End Sub

代码截图
请添加图片描述

执行结果
请添加图片描述
请添加图片描述

Part 5:部分代码解读

  1. 线段1:
    • BeginX、 BeginY、 EndX, EndY分别为200, 800, 500, 950
    • Left,Top,Width,Height分别为200, 800, 300, 150
  2. 线段2:
    • BeginX、 BeginY、 EndX, EndY分别为200, 800, 500, 650
    • Left,Top,Width,Height分别为200, 650, 300, 150
  3. 经过多次测试,结论如下
    • Width = abs(EndX-BeginX)
    • Height= abs(EndY-BeginY)
    • Left = min(BeginX, EndX)
    • Top= min(BeginY, EndY)
  4. 关于LeftTop是和坐标系方向有关,如下图所示,左上角位置的XY肯定是最小的
  5. 尴尬的是,通过这4个表达式,并不足以求出BeginX、 BeginY、 EndX, EndY,估计应该是有其它方法,欢迎留言

请添加图片描述


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

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

公众号底部二维码.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值