宝哥软件园

excel矩阵数据怎么绘制线条

编辑:宝哥软件园 来源:互联网 时间:2021-09-13

超过矩阵数据怎么绘制线条

问:如下所示,左侧是一个四行四列的数值矩阵,要使用VBA根据这些数值绘制右侧的图形。

绘制规则是这样的:找到最小的数值(忽略),将其与第2小的数值用点划线连接,再将第2小的数值与第3小的数值用点划线连接,依此类推,直到连接到最大的数值。在连接的过程中,遇到不连接,如果两个要连接的数值之间有其他数,则从这些数值上直接跨过。如所示,连接的顺序是1-2-3-4-5-6-7-8-9-1 -11-12-13。

VBA代码如下:

'在超过中使用VBA连接单元格中的整数

'输入: 根据实际修改范围和范围变量

范围包括数字矩阵的单元格区域

范围输出区域左上角单元格

子连接号()

变暗范围作为范围,范围作为范围

调暗单元格上一个作为范围

调暗单元格下一个范围

将单元格调暗为范围

作为一个整体

可变范围(作为变体)

设置范围IN=范围(“B3:E6”)

设定范围=范围(《H3》)

'删除工作表中已绘制的形状

删除箭头

ReDim arrRange()

'在一维数组中存储单元格区域中所有大于的整数

对于范围内的每个单元格

Ifcell .值和_

IsNumeric(单元格。值)和_

细胞。值=Int(单元格。值)然后

'仅存储整数

ReDim保留数组

arrRange(i)=单元格。价值

i=i 1

如果…就会结束

下一个单元格

'排序数组(使用冒泡排序)

调用气泡启动(arrRange)

'遍历数组,找到单元格区域相应单元格

对于I=单音(arrRange)至单音(arr范围)-1

设置cellPrev=rangeIN .Find(arrRange(i),_

LookIn:=xlValues,lookat :=XlAll)

设置单元格下一个=范围find(arrRange(I ^ 1),_

LookIn:=xlValues,lookat :=XlAll)

范围相对于范围合适的偏离来绘制形状

调用绘制箭头(单元格预览.偏移量(_

范围(1,1)。行范围(1,1)。第行,_

范围(1,1)。列范围(1,1)。栏),_

细胞下一个.偏移(范围(1,1)。行范围(1,1)。第行,_

范围(1,1)。列范围(1,1)。列))

接下来我

末端接头

'冒泡排序法

子气泡启动(我的阵列)(作为变体)

'从小到大排序

我如龙,我如龙

变暗温度变量

对于i=LBound(MyArray)到UBound(我的数组)1

对于j=i 1至UBound(MyArray)

如果MyArray(i) MyArray(j)那么

温度=MyArray(j)

MyArray(j)=MyArray(i)

MyArray(i)=温度

如果…就会结束

下一个j

接下来我

末端接头

'从一个单元格中心绘制到另一个单元格中心的线条

专用子绘图箭头(从范围作为范围,到范围作为范围)

将小命令一设为双精度,将小命令2设为双精度

将dtop1调为双倍,dtop2调为双倍

将灯一调暗为两倍,将灯2调暗为两倍

昏暗的一倍,昏暗的2倍

小命令1=FromRange .左边的

命令2=存储范围.左边的

dtop1=FromRange .顶端

dtop2=ToRange .顶端

dheight1=FromRange .高度

dheight2=ToRange .高度

dwidth1=FromRange .宽度

dwidth2=存储范围.宽度

活动纸。形状。添加连接器(多连接器直线,_

数据1/2,数据1/2,数据1/2,

dt F2 dwit H2/2,dtop2 dheight2/2).挑选

'格式化线条

选择。形状范围。线条。BeginArrowheadStyle=msoArrowheadOval。endarrowadstyle=msoArrowheadOval。DashStyle=msoLineDash。重量=1.75。ForeColor。RGB=RGB(,)

以…结尾

末端接头

'删除所有形状

子删除箭头()

昏暗的形状

对于活动表中的每个小水电.形状

如果小水电.连接器=msoTrue然后

小水电.删除

如果…就会结束

下一个自行榴弹炮(Self Propelled Howitzer)

末端接头

更多资讯
游戏推荐
更多+