Excel 计算进度条过程中的子节点数
我有一个模板,在更新模板时,它会更改excel屏幕左下角的状态栏。我的大多数同事可能不会注意到这一点。因此,为了让他们了解宏执行过程中的进度,我想创建一个进度条 因此,我看了一些示例,现在设计了一个进度条,它可以很好地用于所提供的代码。 由于我的特殊需要,我希望在每次调用新sub时更新进度条。我知道在过程(6)中执行的SUB的固定数目,我想让VBA检查正在执行的数目。sub 1完成后,进度为1/6=16,67%,sub 2完成后,进度为33%,以此类推 我搜索了vba方法来计算代码中有多少子对象,并寻找一种方法来确定过程中的位置 能给我想要的吗 我在执行过程中调用了这些SUB:Excel 计算进度条过程中的子节点数,excel,vba,progress-bar,procedure,Excel,Vba,Progress Bar,Procedure,我有一个模板,在更新模板时,它会更改excel屏幕左下角的状态栏。我的大多数同事可能不会注意到这一点。因此,为了让他们了解宏执行过程中的进度,我想创建一个进度条 因此,我看了一些示例,现在设计了一个进度条,它可以很好地用于所提供的代码。 由于我的特殊需要,我希望在每次调用新sub时更新进度条。我知道在过程(6)中执行的SUB的固定数目,我想让VBA检查正在执行的数目。sub 1完成后,进度为1/6=16,67%,sub 2完成后,进度为33%,以此类推 我搜索了vba方法来计算代码中有多少子对象
Call datawissen
Call dataplaatsen
Call kolomtitels
Call toevoegen
Call maaktabel
Call refreshpivot
以编程方式计算一段代码中的sub数并非不可能,这可能超出了您的需要。大多数人可能会这样做:
total_no = 6
cnt = 0
refresh_bar cnt / total_no
Call datawissen
cnt = cnt + 1
refresh_bar cnt / total_no
Call dataplaatsen
cnt = cnt + 1
refresh_bar cnt / total_no
Call kolomtitels
cnt = cnt + 1
refresh_bar cnt / total_no
Call toevoegen
cnt = cnt + 1
refresh_bar cnt / total_no
Call maaktabel
cnt = cnt + 1
refresh_bar cnt / total_no
Call refreshpivot
cnt = cnt + 1
refresh_bar cnt / total_no
其中,refresh\u bar是一个子项,它使用作为参数提供的完成百分比值重新绘制进度条。只要有一个计数器变量,每次调用过程时它都会增加1。这也是我在发布答案时创建的:counter=0 call datawissen counter=counter+1 For I=1 To Worksheets.Count如果工作表(i).Name=“Output Totaal”,则调用ASW Next i counter=counter+1调用dataplaatsen,其中counter将是用于进度条的值。(并除以6获得百分比)