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

相关推荐

  • 配料数据采集

    饲料企业工控,在运行时,每个原料对应一个原料仓,每个产品按配方对多个原料进行配称。现在,想在每个产品配称结束时,采集到各个仓配称的数据并记录到数据里,以备查询和统计。不知该怎么实现…

    SIMATIC WinCC 2019年6月11日
  • wcc v6.2 asia需要哪些授权?

    谢谢! 最佳答案 WINCC软件有完全版(可以修改组态和运行)和运行版(只能运行组态)两种;  根据点数数量又分很多种:128,256,1024,8K,64K几…

    SIMATIC WinCC 2019年6月11日
  • WINCC变量问题1

    我想咨询一下,WINCC里面的变量,是存在哪个文件夹里面,有知道的能告诉一下吗? 图片说明:       最佳答案 为什么需要目录。变量直接…

    2017年8月26日
  • wincc工程加密问题

    厂里有台电脑WINCC67.4  运行的是脱销系统。现在时间到了,每次登陆提示输入密码,画面显示正常,泵能够启停,但是无法加减频率。如何破解这个密码。估计他的加…

    SIMATIC WinCC 2021年7月5日
  • wincc VBS脚本 字符串处理的问题

    最近一个项目,VBS脚本进行数据库处理,SQL语句中用到字符串数组进行SQL动态变化,但是引用字符串是数据库标定符号单引号‘’,左边的单引号可以很稳定的出来,右边的引号就很不稳定,…

    2017年6月13日
  • WINCC报表数据不是从第3行写?

    有个往EXCEL里写数据的报表,VBS,是一天产生一个文件夹,但是现在出现这样一个怪事,从运行的第一天数据是从第3行写数据进去,比如写到第6行,当第二天的数据是从第7行开始写,前面…

    SIMATIC WinCC 2019年6月11日
  • WINCC-1500连接,PC-PG接口问题

    WINCC-1500无法连接,PC-PG诊断接口问题,见图,请问该怎么解决? 问题补充:这种问题只能重装系统重装软件解决吗? 图片说明:     &n…

    2017年6月7日
  • WinCC保存PLC地址

    wincc用vbs实现如下一个动作:将从PLC采集的信息保存在SQL里面,例如,Q0.1 当前状态是1;在下面程序中,values后面两项该怎么写?(变量都定义好了,时间…

    SIMATIC WinCC 2018年1月1日
  • wincc的手册是英文?

    请问各位大虾,现在的wincc的入门手册是英文的嘛?请问入门级的手册或提高篇有否中文版本?英文嘛,要走一些弯路。呵呵 最佳答案 有的,已经发给你了,注意查收 提问者对于答案的评价:…

    SIMATIC WinCC 2019年6月11日
  • WINCC 7.0工程师站修改的程序下载至服务器

    请教一下各位大神一个问题;客户现场有一台wincc工程师站、两台wincc服务器做冗余,三台wincc客户端,因项目需要,现在需要在工程师站的wincc中修改部分界面的内容,修改好…

    SIMATIC WinCC 2021年7月5日