ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 程序开发] [VBA][第117期]在工作表上画线[已结]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-1-17 12:39 | 显示全部楼层 |阅读模式
本帖最后由 delete_007 于 2017-5-15 08:58 编辑


请见附件。

竞赛日期:2017年3月14日至2017年4月30日
如有疑问,可与蓝版或者我(delete_007)联系。

总结帖位置:第117期竞赛题结帖

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-3-16 08:54 | 显示全部楼层
本帖最后由 hsw212 于 2017-3-19 11:22 编辑

存在的问题是,图像生成后,当点击单元格,移动窗体,覆盖生成的图像等操作的时候,绘图会消失。应该可以用CreateCompatibleDC等API把绘图存入内存,然后再取出来解决。限于水平有限就不做了,回头看看其他老师的答案。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-3-17 10:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hsw212 发表于 2017-3-16 08:54
这个考数学公式的知识点比API的知识点要多...

谢谢参与。涉及的数学知识点在高中水平,呵呵。

TA的精华主题

TA的得分主题

发表于 2017-3-27 14:05 | 显示全部楼层
本帖最后由 香川群子 于 2017-3-29 14:05 编辑

画个圆可以,不知道画圆弧怎么控制。
……经过录制宏调试,圆弧的画法基本弄明白了。

以圆心坐标(x,y)、半径r对应,
则以圆心对应上顶点(x,y-r)为起点,先画出1/4个圆弧(弧度π/2=90)

ActiveSheet.Shapes.AddShape(msoShapeArc, x, y - r, r, r).Select

然后,分别调整左端点和右端点的弧度角度即可。

Selection.ShapeRange.Adjustments.Item(1) = 90 ……维持左端点位置不变(以右侧水平线为0度)
Selection.ShapeRange.Adjustments.Item(2) = -90……右端点向下扩展1/4个圆弧、构成半圆。


因此,只要能够用三角函数的反正切函数值,就可以计算出圆弧的角度,从而画出需要的圆弧。


TA的精华主题

TA的得分主题

发表于 2017-3-28 11:01 | 显示全部楼层
已经可以模仿出结果来了。

不过,应对各种任意数据,还需要debug改进的。

但是蓝版的例子太简单了,不知道还可能会有几种复杂的线段组合。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2017-3-28 13:02 | 显示全部楼层
稍稍做了简单的debug,允许直线1和直线2 的Y值有上下变化。

但仍需满足附加条件:
1.直线1和直线2都是普通的Y=kX+b类型直线,不是X=b垂直线(即不含x1=x2 或 x3=x4)
2.直线1在直线2上面(y1、y2 > y3、y4)
3.2条直线的交点和连接弧线都在右侧。

备注:
条件3可以智能判断,但比较繁琐
条件2可以智能判断,稍繁琐
条件1可以处理,但考虑各种组合非常复杂

以上 Excel Home 香川群子 2017/3/28

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-6-2 09:59 | 显示全部楼层
香川群子 发表于 2017-3-28 13:02
稍稍做了简单的debug,允许直线1和直线2 的Y值有上下变化。

但仍需满足附加条件:

大师,任意给定三点,要求画圆弧线。
http://club.excelhome.net/thread-1349369-1-1.html
我做不出来,请大师帮忙,谢谢。

TA的精华主题

TA的得分主题

发表于 2017-6-8 15:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个题目参与的人不多,我觉得出点能解决实际问题的题目比较好
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 20:01 , Processed in 0.037701 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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