|
楼主 |
发表于 2024-9-6 10:56
|
显示全部楼层
我最终选择你的代码,和效果图一样的 ,但是我有几处地方有疑问,我一张表格上有“数据一”,“”数据二“,“”数据三”。。。“数据七”,共7段数据需要连线 如图所示。
-------------------------------------------------------------------------------------------------------------
注意:所有需要连线的数据都是从第6行到第204行止住,第205行就不需要连线了。统计范围就是o6到DJ204,看有用一组vba代码能实现不?还是我要分7次用您的代码去实现该功能? 当然只要用1次vba代码能实现是最好的选择,比较省心呀! vba代码上面有很多 I j,我不理解意思,所以我也不敢乱修改,怕搞错了。 所以再次请教您,谢谢!
---------------------------------------------------------------------------------------------------------------
Sub Main()
ReDim ar(2 To 17, 1 To 10) (说明:2 To 17是第2行到第17行,,1to 10是第1个到第10个数字。)
With Sheet1 (表格名称)
For i = 2 To 17 (说明:2 To 17是第2行到第17行,,)
k = 0
For j = 1 To 10 (说明:1to 10是第1个到第10个数字。)
If .Cells(i, j).Interior.Color = 255 Then
k = k + 1
ar(i, k) = j
End If
Next
Next
For j = 1 To 10
For i = 2 To 16 ?????左边是什么意思呢2to16??
If ar(i, j) > 0 Then (i j 是什么意思? 下面有很多i j。。。。呵呵)
If ar(i + 1, j) > 0 Then
.Shapes.AddConnector msoConnectorStraight, _
.Cells(i, ar(i, j)).Left + .Cells(i, ar(i, j)).Width / 2, _
.Cells(i, ar(i, j)).Top + .Cells(i, ar(i, j)).Height / 2, _
.Cells(i + 1, ar(i + 1, j)).Left + .Cells(i + 1, ar(i + 1, j)).Width / 2, _
.Cells(i + 1, ar(i + 1, j)).Top + .Cells(i + 1, ar(i, j)).Height / 2
Else
Exit For
End If
Else
Exit For
End If
Next
Next
End With
End Sub |
|