Tim*_*RIM 7 excel vba excel-vba userform
我是VBA Excel的新手,我只知道这个报告格式化任务需要的东西.
我差不多完成了我的任务但是当我运行程序并开始进度时,尽管它成功运行,但GUI没有响应一分钟.我在这里分享我的代码,它有什么问题吗?你能建议我做最好的练习吗?我不希望它冻结,因为它对我的经理来说会很糟糕.
只是为了说清楚,通过"不响应"我的意思是它在屏幕上冻结并在它的窗口框架上显示"Not Responding",当我点击它时,它会给出如下信息:
*ps:我获得记录的工作表有20997行和7列,我在同一文件大小和20997行23列上的另一张纸上做了一些记录.我的GUI非常简单,它只有一个启动进度的CommandButton.
我怎样才能解决这个问题?
小智 20
您可以通过放置来防止冻结excel窗口
DoEvents
Run Code Online (Sandbox Code Playgroud)
在你的循环中.
好吧,我相信我找到了最好的解决方案。(A) :)
我没有在 TheLoop 子例程中使用 for 循环,而是删除了循环并将其更改如下。当我将它与我的第一个代码进行比较时,尽管我没有禁用事件属性,但现在它并没有冻结,这使得它变得非常快。
Sub TheLoop()
Cells(2, 1).Resize(20996) = "Defect"
Cells(2, 3).Resize(20996) = "New Defect"
Cells(2, 4).Resize(20996) = "3"
Cells(2, 5).Resize(20996) = "2"
Cells(2, 7).Resize(20996) = "Name Surname"
Cells(2, 8).Resize(20996) = "Name Surname"
Cells(2, 9).Resize(20996) = "FALSE"
Cells(2, 10).Resize(20996) = " http://SERVER_NAME:8888/PROJECT_NAME/ "
Cells(2, 12).Resize(20996) = "Software Quality"
Cells(2, 13).Resize(20996) = "Unsigned"
Cells(2, 14).Resize(20996) = "Software Quality"
Cells(2, 15).Resize(20996) = "1"
Cells(2, 16).Resize(20996) = "Name Surname"
Cells(2, 18).Resize(20996) = "Software Quality"
Cells(2, 20).Resize(20996) = "Development"
Cells(2, 22).Resize(20996) = " TYPE YOUR MODULE'S NAME TO HERE"
End Sub
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18810 次 |
最近记录: |