使用VBA excel创build进度线

我尝试通过使用VBA Excel命令创build进度线我有所有的数据来定义进度是什么,但我不知道如何使用VBA创build进度线

例如,我试图使用连接线,但它似乎不工作

ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 60, 405,800, 477).Select Range("Z20").Select ActiveSheet.Shapes.Range(Array("Straight Connector 11671")).Select 

我不会为进度条使用形状,而是在代码更新单元格值的单元格上使用数据栏条件格式

在工作表的一个单元格上创build一个命名范围,例如“ProgressBar”

调整宽度以适合您的需求

将单元格格式化为百分比

select条件格式 – >新规则 – >根据其值设置所有单元格

在“格式样式”下拉菜单中select“数据栏”

select“仅显示栏”checkbox

在“types”下拉列表中,对于最小值和最大值,select“数字”

在“数值”文本框中input0作为最小值,1作为最大值

根据需要设置格式

在VB编辑器中,input下面的代码

 Sub UpdateProgressBar() Dim Rows As Integer Dim RowItem As Integer Rows = 1000 For RowItem = 0 To Rows Sheet1.Range("ProgressBar").Value = RowItem / Rows Next RowItem MsgBox "Done!" Sheet1.Range("ProgressBar").Value = 0 End Sub 

这将更新单元格中的值,数据栏将随着值的增加而增长。

你将需要适应你自己的代码,但这应该是一个起点。

一些做进度条的方法:

使用application.statusbar

或者,使用一个用户窗体,在这个更改任何矩形types的宽度属性(我用一个漂亮的图片字体的button)

使用一个形状,从你改变其宽度属性更改大小。

最难的部分是使得速度更快,所以不会影响性能,有时,当将application.screenupdating=false与doevents doevents ,它可能会闪烁…(或不)

如果你需要一些代码,我可以给你一个样本,你可以根据你的需要来改变它