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