请问大家用VBA对EXECL表格编程,运行起来很慢!

因为用户归档的运行数据无法转换成标准的EXECL表,我把数据输入到EXECL表中,用VBA宏测试了颜色、列宽度及数据格式,请问为什么运行起来这么慢?为什么单独运行修改颜色的脚本,却很快,修改列宽我看到一个一个在刷新,有没有更快的办法?谢谢!
脚本如下:
Sub 颜色自动显示()
Dim i, j, Obj
For i = 4 To 31
For j = 10 To 500 Step 4
Set Obj = Cells(i, j)
If Not IsNull(Cells(i, j).Value) And IsNumeric(Cells(i, j).Value) Then
   Cells(i, j) = Format(Cells(i, j), "0.00")
   If Abs(Cells(i, j).Value) > 1 Then
     If Abs(Cells(i, j).Value - 1) <= 0.2 Then
       Cells(i, j).Interior.Color = RGB(255, 255, 0)
       Else
       Cells(i, j).Interior.Color = RGB(255, 0, 0)
       End If
   Else
       Cells(i, j).Interior.Color = RGB(0, 255, 0)
       End If
Else
       Cells(i, j).Interior.Color = RGB(255, 250, 250)
End If

Cells(i, j - 2).ColumnWidth = 7
With Obj '对象多个属性操作
.ColumnWidth = 5.22
End With

Next
Next
End Sub

最佳答案

用.Range代替.Cells,速度会提高很多。
前者是区域,后者是单元格。
比如操作第4行到第31行的第10列,可以这样表达:
.Range(.Cells(4, 10), .Cells(31, 10))

如果是整个数据区域(从第4行第10列,到第31行第500列),则是:
.Range(.Cells(4, 10), .Cells(31, 500))

提问者对于答案的评价:
确实这样,但是赋值的时候都是一个一个赋值的啊?很慢,这不可能啊?那IT那么大的数据量怎么搞的?谢谢!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc315073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午4:04
下一篇 2020年11月1日 下午4:04

相关推荐

  • 时间同步问题-wincc作为时间主站

    WinCC作为时间主站时,当时间变化大于5s时,WinCC同步功能被禁用,并产生“时间跳跃-永久取消时间同步”消息,如何解决这种问题,我现在是想wincc作为时间主站!请大家指导一…

    SIMATIC WinCC 2017年12月2日
  • wincc7.4中显示ASCII码

    请教前辈假设在1500中某个变量的值为16#41424344,在wincc画面IO域中怎么才能实现显示ABCD? 问题补充:数据是存储在优化的数据块中!!! 最佳答案 plc转换为…

    SIMATIC WinCC 2020年11月1日
  • 如何用winccstep7实现路径选择启停设备

    我有6个出油罐和5个进油罐子中间有不少阀门和电机,有比较好的办法我只要指定进出油罐后相关的阀门和电机就启动,路径种类比较多有什么好的办法实现了而且方便以后增加罐子,如果一条路径一条…

    SIMATIC WinCC 2021年7月5日
  • wincc打印机连接如何取消打印连接界面!

    wincc一个项目总是自动连接打印机 然后打印机 如果不打开打印机无法无效打印连接 如何才能取消打印窗口?  问题补充:无法取消打印机打印窗…

    SIMATIC WinCC 2019年6月11日
  • wincc7.4使用自带的在线表格做报表的问题

    麻烦问下使用自带在线表格做报表,想实现手动打印和自动打印,手动打印时手动选择开始和结束的日期时间来打印,自动打印时可以设定时间段比如每2个小时打印一次,只打印这两小时之内的数据,手…

    SIMATIC WinCC 2021年7月5日
  • WINCC正版授权报错

    如题,客户用,用的128点,报错如下图: 问题补充:图片补充,谢谢。 图片说明:       最佳答案 未连接到USB授权,考虑是USB未被…

    2020年11月1日
  • wincc如何做到按钮来替换趋势图显示标签

    问题如下图所示:很多个标签需要显示为了减轻工作量,建立了结构变量,我想这么多标签共用一个趋势窗口,点击不同的按钮,趋势窗口显示当前按钮下的标签值。 图片说明:  &nbs…

    2017年6月27日
  • 关于WINCC的用户管理是怎样设置

    wincc  做好之后,点击首页进入用户管理,然后根据你输入的用户名和密码决定你的权限大小。请问这个怎么设置。 最佳答案 参考:http://www.ad.si…

    SIMATIC WinCC 2021年7月5日
  • wincc 报警控件ccalwinctrl

    ccalwinctal 在属性里看到这个控件的名字,但是我在控件了没有找到,这个控件怎么用,设备分别报警(1车间,2车间报警分开) 最佳答案 这报警控件估计是组态人员改的…

    SIMATIC WinCC 2021年7月5日
  • WINCC上传问题

    请问如何将触摸屏的程序传上来,和复制到MMC卡上。 问题补充:是WinCC Flexible2008 ,请问怎样复制到MMC卡里, 最佳答案 首先应该澄清“回传…

    SIMATIC WinCC 2019年6月11日