ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 853|回复: 9

[求助] 图片旋转后的TOP/LEFT属性问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-1-4 15:10 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
大家好!

发现一个问题,就是如果图片旋转之后,它们的top或者left会变得很奇怪
下面以top为例,下图为同一张图片分别旋转0、90、180、270度
2023-01-04_150232.png
按本身理解shape的top属性应该都是0(已拖到最顶端)
但实质测试结果如下:
2023-01-04_150306.png
那我的问题是,如果要移动被旋转过的(角度非0)的图片,top和left属性应该如何计算?
谢谢!!!
图片旋转.zip (28.47 KB, 下载次数: 12)

TA的精华主题

TA的得分主题

发表于 2023-1-4 16:27 | 显示全部楼层
确实如此,不明所以,
顶起求技术大师释疑...

TA的精华主题

TA的得分主题

发表于 2023-1-4 16:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
和图片长宽比有关

TA的精华主题

TA的得分主题

发表于 2023-1-4 17:23 | 显示全部楼层
02761752696 发表于 2023-1-4 16:47
和图片长宽比有关

能详细说明下吗?
旋转后,哪个点才是图片的"Top"点与"Left"点?
图片是按中心旋转的,若以图片左上角坐标为(Top, Left),按中心点坐标旋转角度后去计算,得到的新坐标显然不是图片的"顶点"了,看一楼图示和那个Top为负值的就知道了,不解,
若说是以新、旧图片中心点作为比较,却似乎与 Shape.Top = Range.Top 的用法有矛盾.......

TA的精华主题

TA的得分主题

发表于 2023-1-4 17:53 | 显示全部楼层
看来似乎是以新旧图片的旋转中心点作比较
QQ截图20230104174653.jpg
末知旋转45度或60度等图片能否计算验证

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-4 21:29 | 显示全部楼层
aman1516 发表于 2023-1-4 17:53
看来似乎是以新旧图片的旋转中心点作比较

末知旋转45度或60度等图片能否计算验证

90度和270度的我推出是【长宽之差的一半】
但是其他角度还没仔细研究

TA的精华主题

TA的得分主题

发表于 2023-1-5 07:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
image.png image.png

TA的精华主题

TA的得分主题

发表于 2023-1-5 11:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
应该是以图片(画布框)的中心点为基准的吧,
若不是在图片格式菜单中操作,用旋转选项(大小和属性窗口的旋转角度选项)对图片进行旋转的话,
而是直接选择图片,拖动旋转手柄,围绕图片中心点任意角度旋转时,
图片的 Top 和 Left 值是不变的。
Shape各点/边坐标其实是:
Shape.Top = Shape.中心点.Top - Shape.Height / 2
Shape.Left = Shape.中心点.Left - Shape.Width / 2
所以,当在工作表复制粘贴一个旋转角度的图片时,那就芭比Q了,
这时并不是旋转图片的顶点及最左边点对齐单元格的顶边和左侧边的,
而是上面公式的坐标点对齐单元格的左上角坐标点。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-1-5 14:58 | 显示全部楼层
aman1516 发表于 2023-1-5 11:04
应该是以图片(画布框)的中心点为基准的吧,
若不是在图片格式菜单中操作,用旋转选项(大小和属性窗口的旋 ...

我测试用了旋转手柄也一样结果
另外还有一个参考点就是:不管如何旋转,Height和Width是不会变的
以上这句不是废话,而是如果原始图片文件通过看图软件旋转了,再导入Excel中,是不会重置为0度的,而是会保持那个角度

目前感觉有点绕,有待研究非90度倍数的结果,
我知道您想表达的意思是对的,但是就是从文字公式上感觉不太清晰
谢谢分享

TA的精华主题

TA的得分主题

发表于 2023-1-5 17:53 | 显示全部楼层
morpheus126 发表于 2023-1-5 14:58
我测试用了旋转手柄也一样结果
另外还有一个参考点就是:不管如何旋转,Height和Width是不会变的
以上 ...

菜单操作与手柄操作是一样的,开始以为不一样,文字表达太啰嗦了
找到粘贴有旋转角度的图片与选定单元对应的方法了,
用 .PasteSpecial 的方式就行了

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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 22:46 , Processed in 0.045899 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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