请问大家用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

相关推荐

  • 获取窗口变量前缀名称

    首先,感谢西门子专家在http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=63921&cid=1032给予的…

    SIMATIC WinCC 2019年6月11日
  • 如何用触摸屏初始系统时间

    如何用触摸屏初始系统时间 最佳答案 1、参见文档:见《如何同步操作面板与 S7-200/300/400 控制器的日期和时间?(更新版)(2007.03.29)&…

    SIMATIC WinCC 2019年6月10日
  • WinCC flexible SMART V3 下载动作执行失败

    WinCC flexible SMART V3 下载时出现动作执行失败 最佳答案 本文介绍Smart 700、Smart&nbsp…

    SIMATIC WinCC 2020年11月1日
  • wincc快捷图标

    wincc版本6.2,sp3;想知道怎么建立一个桌面快捷项目运行图标,点击图标不用打开项目编辑模式而直接进入运行系统 问题补充:怎么会出现这样的错误! 图片说明:  &n…

    2021年7月5日
  • 变量前缀问题?

    定义结构变量及模板画面后,模板画面变量前缀可以直接设定,模板画面中按按钮调出二级画面,二级画面的变量前缀如何与模板画面的变量前缀设为一样? 问题补充:模板画面的前缀变量 …

    SIMATIC WinCC 2019年6月11日
  • 导航按钮

    (1)在主画面上有一排按钮,按钮按下弹出一个小窗口,小窗口里面有按钮;(2)小窗口里面有去不同画面的按钮,点下按钮其它画面都关了就去目标画面;现在第一步我做出来了,但是我点画面里的…

    SIMATIC WinCC 2017年11月12日
  • wincc滚动条加减变量问题

    在wincc中滚动条单击箭头如何实现加减0.1或5?我设置了操作步骤属性只能设为整数,不能设小数,而且设置为5,点箭头还是加1.请问是怎么回事?如何实现? 最佳答案 http://…

    SIMATIC WinCC 2021年7月5日
  • 谁有WINCC 7.0 ,和STEP7 5.4的安装和使用手册,要中文版本的麻烦给我发到邮箱里谢谢!

    谁有WINCC 7.0 ,和STEP7 5.4的安装和使用手册,要中文版本的麻烦给我发到邮箱里谢谢! 问题补充:我的电子邮箱是jinpeng6000@…

    SIMATIC WinCC 2018年1月1日
  • 我需要哪些授权

    我单位新上了一套西门子S7-200系统,安装的是STEP7软件,不知道STEP7软件是否必须有授权,组态软件是WINCC,WINCC软件运行时的授权一定要装在硬盘里吗?我是维护系统…

    SIMATIC WinCC 2019年6月11日
  • wincc许可证问题

    今天在我的本本上安装了WINCC6.0sp3,也安装了授权但是运行是提示“软件许可证已期满”许可证名称是SIUPA9WRC5—1。问题是前一阵我在另一个本上如上安装后可以正常运…

    SIMATIC WinCC 2019年6月11日