电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

EXCEL用VBA画线

EXCEL用VBA画线_第1页
EXCEL用VBA画线_第2页
EXCEL用VBA画线_第3页
我想用VBA 编写一个在工作表中指定单元格至指定单元格之间画一条直线程序(最好是自定义函数).如果哪位高手精于此道,请指教,不盛感激! 最好是自定义函数,呵呵,一般来说没有用自定义函数来操作对像的,不过…… 下面的自定义函数可以画一条名称为给定名称线,位置在给定的两个单元格间。 说明:参数1 为线的名称,参数2 与3 为画线的两个单元格,画线成功后函数获得说明,否则值为#value 代码: Function DrawLine(LineName As String, xRan As Range, yRan As Range) On Error Resume Next Dim xSh As Worksheet Dim tStr As String tStr = "已成生名为“" & LineName & "”从“" & xRan.Address(0, 0) & "”到“" & yRan.Address(0, 0) & "” 的直线!" Application.Caller.Parent.Shapes(LineName).Delete Err.Clear If xRan.Column = yRan.Column Then With Application.Caller.Parent.Shapes.AddLine _ (IIf(xRan.Top >= yRan.Top, xRan.Offset(1, 0).Left + xRan.Width / 2, yRan.Offset(1, 0).Left + yRan.Width / 2), _ WorksheetFunction.Min(xRan.Offset(1, 0).Top, yRan.Offset(1, 0).Top), _ IIf(xRan.Top < yRan.Top, xRan.Offset(1, 0).Left + xRan.Width / 2, yRan.Offset(1, 0).Left + yRan.Width / 2), _ WorksheetFunction.Max(xRan.Top, yRan.Top)) .Name = LineName .Line.ForeColor.SchemeColor = 10 End With Else With Application.Caller.Parent.Shapes.AddLine _ (WorksheetFunction.Min(xRan.Offset(0, 1).Left, yRan.Offset(0, 1).Left), _ IIf(xRan.Left < yRan.Left, xRan.Top + xRan.Height / 2, yRan.Top + yRan.Height / 2), _ WorksheetFunction.Max(xRan.Left, yRan.Left), _ IIf(xRan.Left > yRan.Left, xRan.Top + xRan.Height / 2, yRan.Top + yRan.Height / 2)) .Name = LineName .Line.ForeColor.SchemeColor = 10 End With End If If Err.Number Then DrawLine = "#value" Else DrawLine = tStr End If End Function 另外如何用VBA 删除由上述程序生成的直线呢,能不能好人做到底,帮我解决这个困难 Application.Caller.Parent.Shapes(LineName).Delete 这句就是删除,感觉你只是要用不去理解,唉! 还可以用 Activeshee...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部