前言看到題目,估計(jì)大家都笑了,直線有什么好學(xué)的,拿起鼠標(biāo)點(diǎn)兩下不就行了么? 在EXCEL中手動畫一條線非常簡單,連續(xù)畫100條線累不累呢,如果數(shù)據(jù)變了,你要再畫一遍嗎? 帶著這些問題我們看一下vba是怎么畫線的。 探究在EXCEL中按ALT+F11打開vba編輯器 在代碼窗口輸入下列代碼: Sub 畫線() ActiveSheet.Shapes.AddLine 50, 20, 300, 100 End Sub 按F5運(yùn)行,你的活動窗口就畫出一條直線,如下圖所示. 畫線的命令和參數(shù)非常簡單,就是通過線段起始點(diǎn)和結(jié)束點(diǎn)的坐標(biāo)確定一條直線.格式為 Activesheet.shapes.addline start_x, start_y, finish_x, finish_y EXCEL以左上角為坐標(biāo)原點(diǎn),向左為X軸正方向,向下為Y軸正方向,如下圖所示: 想讓直線乖乖的聽話,首先你要確定端點(diǎn)的坐標(biāo),那么端點(diǎn)的坐標(biāo)與單元格是什么關(guān)系呢? 單元格的坐標(biāo)和尺寸屬性如下表所示:
練習(xí) 休息一下馬上回來: 下面的是一段計(jì)劃模板,根據(jù)開始和結(jié)束日期在右面畫出相應(yīng)的線段 首先確定開始日期和結(jié)束日期對應(yīng)的列,公式如下: 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運(yùn)行代碼,結(jié)果如下: 知識點(diǎn)圖形坐標(biāo)系的認(rèn)知 代碼看不懂沒關(guān)系,照葫蘆畫瓢 畫線命令: Activesheet.shapes.addline start_x, start_y, finish_x, finish_y 線寬: Selection.ShapeRange.Line.Weight=3 線的顏色: Selection.ShapeRange.Line.ForeColor.RGB = vbRed 這只是圖形的入門,思考一下:如果日期欄不是按天而是按周或按月顯示,如何去做呢? |
|