首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VBA >

实施VBA脚本代码提示“类型不匹配”

2012-11-20 
执行VBA脚本代码提示“类型不匹配”昨天领导开会,谈论关于运营支撑系统的报表数据处理的需求问题,也就是把一

执行VBA脚本代码提示“类型不匹配”
    昨天领导开会,谈论关于运营支撑系统的报表数据处理的需求问题,也就是把一张excel表中的数据复制到另外一张excel表中,人工也可以操作,为了解放这份劳动力,运营支撑部门的领导要求用程序来实现这个功能。
   
    会议期间领导提出可以使用VBA来实现,而领导对VBA也是了解不多,而Ricki则是一点具体的概念也没有,只听说过VB,呵呵!领导说了,这份功能由他来实现,而且必须当天内实现从一张表中取数据并复制到另外一张表中,并保存的。

    说实在,听后压力蛮大,不过领导也把他所知道的如何在excel中录制宏、执行宏、生成启动宏的工作薄一一的告诉了Ricki,听后感觉也真如领导说的那样,“so easy”,呵呵,天底下的领导都是这样的!

    话说了这么多,还是切入正题吧!

    因为没有使用过VBA,录制过程中,虽然代码是自动产生的,但也要做相应的修改。如当前需要“广州”炫铃的信息费数据,那么到另外一张表中,必须去查找“广州”这个地市在哪行,并定位到该地市的信息费在哪行哪列。

    由于有多个地市,所以必须遍历比较,使用了for和if。如:
    For Row = 9 To 29 Step 1
    If Range("B" + Row).Value = "广州" Then
    Range("AH" + Row).Select
    Exit For
    End If
    Next Row

    执行的时候,在Range("B" + Row).Value报类型不匹配。后在网上查找,发现不能用+号(虽然帮助文档说+号是连接运算符),数字和字符串连接的话只能使用&,改后如下:
     For Row = 9 To 29 Step 1
    If Range("B" & Row).Value = "广州" Then
    Range("AH" & Row).Select
    Exit For
    End If
    Next Row

    使用+号,会包“B”转为数字,然后相加。这跟Javascript不一样,如:
     <script>
      var i = 1;
      var j = "AH";
      document.write(j+i);
      document.write("<br/>");
      document.write(i+j);
     </script>
     结果:AH1
          1AH
   
     今天看到一篇很搞笑的文章,在此也跟大家分享一下《令人喷饭的程序注释》

热点排行