(2019年4月26日更新)
需求更新:一次性画出选中的一列单元格的线
Sub 红线()
'
'Sheet1.Cells(3,2)——表1第3行第2格
'这段代码可以一次画一行的线,但是要求选中的单元格从第二个有数据的开始
Dim BILICHI As Double '比例尺
BILICHI = 10
Dim DATE0 As Integer '定义横向偏移
DATE0 = 0
Dim ZERO As Integer '定义零点所在的行
ZERO = 11 * BILICHI
For Each Rng In Selection '对每个选中的单元格
Dim row2 As Integer '直线终止点y = 被选中单元格中的值
row2 = ZERO - Rng.Value
Dim column As Integer '直线终止点x = 被选中单元格的行号+横向偏移
comlumn = Rng.Row + DATE0
Dim row1 As Integer '直线起始点y = 被选中的单元格的上一个数据的值
row1 = ZERO - Sheet1.Cells(Rng.Row - 1, Rng.column).Value
Set myDocument = Worksheets(2)
With myDocument.Shapes.AddLine(Sheet2.Cells(row1, comlumn - 1).Left, Sheet2.rows.RowHeight * row1 / BILICHI, Sheet2.Cells(row2, comlumn).Left, Sheet2.rows.RowHeight * row2 / BILICHI).Line '画直线
.ForeColor.RGB = RGB(255, 0, 0)