使用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
,它可能会闪烁…(或不)
如果你需要一些代码,我可以给你一个样本,你可以根据你的需要来改变它