解决VBA运行时错误13 类型不匹配问题 |
您所在的位置:网站首页 › 碧蓝航线系统错误类型不匹配 › 解决VBA运行时错误13 类型不匹配问题 |
解决VBA运行时错误13 类型不匹配问题
哈拉鱼先生: 这两年VB代码写得多了慢慢能感觉到问题出在哪里了。 例子里面写的其实不严谨,直接写Cells(x,y)其实电脑最直接理解就是Thisworkbook.Worksheets(1).Cells(x,y)这个range对象。 其实后面如果写上 Cells(x,y).Value那么再print肯定就会被电脑理解为数字了。 平时写代码不太会到这种问题,因为一般定义变量的时候会写清楚,比如 dim x as string dim y as long x = cells(x,y) y= cells(n,m) 这样再读单元格的内容,也等于预先定义好数据类型了,不容易出错 解决VBA运行时错误13 类型不匹配问题
Jonathan Star:
vba 不会报错具体行数吗,不能printStack吗,太难调试了 哈拉鱼先生: 在出错的行之前debug.print一下主要的参数,作者在本地窗口里面看看变化。一般都是简单的算数问题,数组之类则往往和默认的起始下标(0或1)相关 VBA实现从指定文件夹批量抓取Word文档内容并整理(上)
风雪猎归人:
惨,我提示运行错误'9'下标越界,对着看了很久都找不到问题。感觉一模一样的代码。 哈拉鱼先生: 现在想想应该和程序的读取顺序和判断有关,整体上先右后左,局部上先把元素的性质定了再判断、计算,所以不管是给指定哪个变量的类型都能帮助VB搞清楚编程者的意图——想把参与运算的变量当成数字。 虽然3本身是个integer,但是程序在转换range的时候不知道要把range转成integer还是long或者其它什么类型的数值。可能正式我们觉得画蛇添足般的进一步声明帮助VB确定了编程者的意图,于是就走通了。 以上都是我的臆想,哈哈哈哈哈,仅供拍砖 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |