作者terrylove12 (空洞)
看板Office
标题[算表] VBA画线问题
时间Sun Nov 10 18:41:02 2019
软体:EXCEL
版本:2010&2019
想请问VBA画线的一个问题
最近写了一个进度管控的程式
需要利用VBA去画一些线
线画的位置跟储存格的数值有关
所以位置并不是每个专案都固定
因此用到以下的方法去写
With ActiveSheet.Shapes.AddLine(Cells(ii, jj).Left, Cells(ii, jj).Top,
Cells(kk, pp).Left, Cells(kk, pp).Top)
END WITH
这样的确可以画出线没问题
但我希望线条的位置是从储存格列高中心到另个储存格的列高中心
因此我试过把.TOP 改成.HEIGHT/2
但是画出来位置变成 第一列的中心位置
尝试过.TOP+HEIGHT/2 也没办法从特定储存格的列高中点开始以及结束
(就是画在格子中间)
所以想请教大家有没有办法可以解决
先感谢大家了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.37.173.166 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1573382464.A.52C.html
1F:→ soyoso: beginx,range.left+range.width/2 11/10 19:02
2F:→ soyoso: endx,range.resize.width,range.resize内的columnsize变 11/10 19:02
3F:→ soyoso: 数pp减变数ii加1,减cells(kk,pp).width/2 11/10 19:02
4F:→ soyoso: 不用range.resize的话,可以range(cells(ii,jj),cells(... 11/10 19:02
5F:→ soyoso: ))的方式 11/10 19:02
6F:→ soyoso: beginy和endx就如内文所述 11/10 19:02
7F:→ soyoso: 以上述方式就可做到中点至同列其他储存格的中点 11/10 19:04
9F:→ terrylove12: 感谢S大 我以第一楼的推文去尝试 成功了 11/11 22:01