EXCEL中A1-J1十个单元格,其值为0-9的整数(如图),要求:当A1-J1单元格中有数据时,自动产生图左侧效果
当A1-J1单元格有数据时,自动生成如图示左侧效果(自动产生连线信息)不要求理论与讲解,只要求实现方法测试成功,达到如图效果后---高悬赏!!!...
当A1-J1单元格有数据时,自动生成如图示左侧效果(自动产生连线信息)
不要求理论与讲解,只要求实现方法
测试成功,达到如图效果后---高悬赏!!! 展开
不要求理论与讲解,只要求实现方法
测试成功,达到如图效果后---高悬赏!!! 展开
展开全部
1.按下Alt+F8,输入一个宏名,点创建,把下列代码复制、粘贴进"Sub 你写的宏名()"和“End Sub”之间,粘贴完后回到excel表。
‘Sub Macro1()
Dim UpCell, DownCell As Range
Dim t, b, r, l As Single
If Selection.Rows.Count < 2 Then
Exit Sub
End If
For Each aRow In Selection.Rows
If aRow.Row = Selection.Rows.Count + Selection.Rows(1).Row - 1 Or Application.WorksheetFunction.CountA(aRow) = 0 Or Application.WorksheetFunction.CountA(aRow.Offset(1, 0)) = 0 Then
Exit Sub
End If
If aRow.Cells(1, 1) = "" Then
Set UpCell = aRow.Cells(1, 1).End(xlToRight)
Else
Set UpCell = aRow.Cells(1, 1)
End If
If aRow.Offset(1, 0).Cells(1, 1) = "" Then
Set DownCell = aRow.Offset(1, 0).Cells(1, 1).End(xlToRight)
Else
Set DownCell = aRow.Offset(1, 0).Cells(1, 1)
End If
If UpCell.Left = DownCell.Left Then
t = UpCell.Top + UpCell.Height * 0.7
b = DownCell.Top + DownCell.Height * 0.3
l = UpCell.Left + UpCell.Width / 2
r = UpCell.Left + UpCell.Width / 2
ElseIf UpCell.Left > DownCell.Left Then
t = UpCell.Top + UpCell.Height * 0.7
b = DownCell.Top + DownCell.Height * 0.3
l = UpCell.Left + UpCell.Width * 0.3
r = DownCell.Left + DownCell.Width * 0.7
ElseIf UpCell.Left < DownCell.Left Then
t = UpCell.Top + UpCell.Height * 0.7
b = DownCell.Top + DownCell.Height * 0.3
l = UpCell.Left + UpCell.Width * 0.7
r = DownCell.Left + DownCell.Width * 0.3
End If
ActiveSheet.Shapes.AddLine l, t, r, b
Next
‘End Sub
2.(选做)然后再按下Alt+F8,选中你刚才创建的宏,点“选项”,指定一个快捷键
3. 保证你的宏没有被禁用
4.选中你想连线的区域(单个区域,不能选多个区域)
5.如果你做了第2步,按下你的快捷键;如果你没有做第2步,还是按下Alt+F8,选中你刚才建的宏,点执行。
补充说明一下:如果你选中的区域中间有一行一个数也没有,那么这一行往下就不会再连线了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询