我有一个Excel表,其中包含大约40,000个值,需要通过userform进行排序。为此,我用了......
myTable.Sort.SortFields.Add Range(strSortBy), xlSortOnValues, xlDescending, xlSortNormal
myTable.Sort.Apply
...其中myTable是表,strSortBy是我想要排序的列的标题。
现在,尽管Excel具有闪电般快速的排序功能,但是这些数据开始需要足够长的时间(几秒钟),我希望为用户提供某种进度反馈。我在Excel中创建了几个userform进度条,但由于Sort是一个内置 Excel函数,我看不到任何明显的方法来显示或确定完成的百分比。
这是一个失败的原因吗?或者有什么方法可以确定内置函数的进度吗?
非常感谢任何帮助。
答案 0 :(得分:0)
我喜欢使用内置的状态栏功能来显示进度。它非常简单但功能强大。
示例:
Application.StatusBar = "Renaming Cells"
While count2 <= (count1)
DoEvents
Length = Len(Range("C" & CStr(count2)).Value)
Newlength = Length - 2
newID = Left(Range("C" & CStr(count2)).Value, Newlength)
Range("C" & CStr(count2)).Value = newID
count2 = count2 + 1
newID = vbNullString
Application.StatusBar = "Editing Cell: " & count2 & " of " & count1 & "."
Wend
在这个例子中,我能够遍历单元格,缩短每个单元格的长度。这样做时,我会显示程序所在的单元格,因为它可能需要很长时间。
希望这有帮助!