Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1653|回复: 9

大神们帮忙看看怎么获取直线的两点坐标

[复制链接]
发表于 2022-4-12 19:45 | 显示全部楼层 |阅读模式
本帖最后由 qong6688 于 2022-4-13 09:35 编辑

下图中,黑色的线(平行的线或从左上角画到右下角的线)可以通过Left、Top、Width、Height等属性来计算得到
MsgBox ActiveSheet.Shapes(1).Left
MsgBox ActiveSheet.Shapes(1).Top
MsgBox ActiveSheet.Shapes(1).Left + ActiveSheet.Shapes(1).Width
MsgBox ActiveSheet.Shapes(1).Top + ActiveSheet.Shapes(1).Height

但红色的线(也就是从右上角画到左下角的线)这样计算结果不对啊当然,红线也可以用这几个参数计算,公式稍微有点不同,但怎么判断是黑线还是红线呢?

画线的时候都可以指定两点的坐标,线画好后要怎么获取坐标呢?应该是可以的吧?
下载.png

发表于 2022-4-13 08:40 | 显示全部楼层
本帖最后由 lisachen 于 2022-4-13 08:53 编辑

红色的线(也就是从右上角画到左下角的线)Top是右边的点(终点):
左边的x=.Left         y=.top+.Height
右边的x=.Left + .Width    y=.top



回复

使用道具 举报

 楼主| 发表于 2022-4-13 09:32 | 显示全部楼层
lisachen 发表于 2022-4-13 08:40
红色的线(也就是从右上角画到左下角的线)Top是右边的点(终点):
左边的x=.Left         y=.top+.Heigh ...

这个计算方式我知道,但怎么判定是红色的线,而不是黑色的线呢?
回复

使用道具 举报

发表于 2022-4-13 09:53 | 显示全部楼层
一共有两条线,一个是 ActiveSheet.Shapes(1),一个是ActiveSheet.Shapes(2)
回复

使用道具 举报

 楼主| 发表于 2022-4-13 10:29 | 显示全部楼层
roserice 发表于 2022-4-13 09:53
一共有两条线,一个是 ActiveSheet.Shapes(1),一个是ActiveSheet.Shapes(2)

谢谢您。一是实际操作中肯定不只两条线,二是我怎么知道第1条斜线是"/"还是"\"呢?

回复

使用道具 举报

发表于 2022-4-13 10:37 | 显示全部楼层
可以这样的思路,把ActiveSheet.Shapes(1)运用方法copypicturn 复制成一张位图,然后直接读取位图最左上角的第一个元素是不是空白色,不是白色的话就是从左上角到右下角的图形
否则就是左下角到右面的图形
回复

使用道具 举报

发表于 2022-4-13 10:42 | 显示全部楼层
有无其他好的思路可以告诉下我哦,我也想不出其他方法
回复

使用道具 举报

发表于 2022-4-13 11:49 | 显示全部楼层
研究下 Shape.HorizontalFlip 和 Shape.VerticalFlip 即可。

Shape坐标问题.V1.Compressed.gif
回复

使用道具 举报

 楼主| 发表于 2022-4-13 12:11 | 显示全部楼层
ahn 发表于 2022-4-13 11:49
研究下 Shape.HorizontalFlip 和 Shape.VerticalFlip 即可。

完美,谢谢您的帮忙,已解决了
回复

使用道具 举报

发表于 2022-4-13 20:36 | 显示全部楼层
使用多段线方法画一个直线段,直接就能取点坐标值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-4 02:49 , Processed in 0.356624 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表