美文网首页精进ExcelEXCELExcel 加油站
线表入门-如何优雅的画一条直线

线表入门-如何优雅的画一条直线

作者: Excel老崔 | 来源:发表于2019-05-16 20:55 被阅读0次

    前言

    看到题目,估计大家都笑了,直线有什么好学的,拿起鼠标点两下不就行了么?

    在EXCEL中手动画一条线非常简单,连续画100条线累不累呢,如果数据变了,你要再画一遍吗?

    带着这些问题我们看一下vba是怎么画线的。

     探究

    在EXCEL中按ALT+F11打开vba编辑器

    在代码窗口输入下列代码:

    Sub 画线()

    ActiveSheet.Shapes.AddLine 50, 20, 300, 100

    End Sub

    按F5运行,你的活动窗口就画出一条直线,如下图所示.

    画线的命令和参数非常简单,就是通过线段起始点和结束点的坐标确定一条直线.格式为

    Activesheet.shapes.addline start_x, start_y, finish_x, finish_y

    EXCEL以左上角为坐标原点,向左为X轴正方向,向下为Y轴正方向,如下图所示:

    想让直线乖乖的听话,首先你要确定端点的坐标,那么端点的坐标与单元格是什么关系呢?

    单元格的坐标和尺寸属性如下表所示:

    功能解释

    CELLS(2,1).LEFT单元格左上角的X坐标

    CELLS(2,1).TOP单元格左上角的Y坐标

    CELLS(2,1).WIDTH单元格的宽度

    CELLS(2,1).HEIGHT单元格的高度

     练习

    下面的是一段计划模板,根据开始和结束日期在右面画出相应的线段

    首先确定开始日期和结束日期对应的列,公式如下:

    D1=MATCH(B2,$A$1:$O$1,1)

     E1=MATCH(C2,$A$1:$O$1,1)

    打开vba编辑器来上一段代码:

    Sub drawline()

    For i = 2 To 4

        Start_x = Cells(i,Cells(i, 4)).Left

        Start_y = Cells(i,Cells(i, 4)).Top + Rows(i).Height / 2

        Finish_x =Cells(i, Cells(i, 5)).Left + Cells(i, Cells(i, 5)).Width

        Finish_y = Start_y

     ActiveSheet.Shapes.AddLine(Start_x,Start_y,Finish_x, Finish_y).Select

        WithSelection.ShapeRange.Line

            .Weight = 3

            .ForeColor.RGB= vbRed

        End With

    Next

    End Sub

    按F5运行代码,结果如下:

     知识点

    图形坐标系的认知

    代码看不懂没关系,照葫芦画瓢

    画线命令:

    Activesheet.shapes.addline start_x, start_y, finish_x, finish_y

    线宽:

    Selection.ShapeRange.Line.Weight=3

    线的颜色:

    Selection.ShapeRange.Line.ForeColor.RGB = vbRed

    这只是图形的入门,思考一下:如果日期栏不是按天而是按周或按月显示,如何去做呢?

    相关文章

      网友评论

        本文标题:线表入门-如何优雅的画一条直线

        本文链接:https://www.haomeiwen.com/subject/afbwaqtx.html