424到底怎么回事儿?看完这篇就不再困惑424!

天美租号

今天就来聊聊这个“424”。碰上这玩意儿,十有八九是代码里头出了点岔子,或者说,你要用的那个“对象”,它没到位。

说白了,就像你喊人,结果那人不在,或者你喊错名字了,人家答应不了你。电脑也一样,它要找个东西干活,结果那东西要么压根儿就没准备要么就是你告诉它的名字不对,它找不到,可不就给你撂挑子,报个“424”嘛意思就是“你要的那个对象,我这儿没有”。

我那次折腾“424”的经历

424到底怎么回事儿?看完这篇就不再困惑424!

记得有一次,那还是好几年前了,我在弄一个VB写的小工具,用来处理一些Excel表格数据。平时跑得好好的,那天突然就不行了,一运行到某个步骤,就“啪”弹出来一个提示框:“运行时错误 ‘424’:要求对象”。

我当时就有点蒙。 这代码我也没动过,怎么突然就出问题了?

我就开始琢磨,这“要求对象”是啥意思。根据以往的经验,这通常意味着我代码里想用一个变量,但这个变量还没被正确地“赋值”,或者说,它还是个空壳子,里面没东西。比如我声明了一个变量说“这是个工作簿”,但没告诉它是哪个工作簿,那它自然就不知道怎么干活了。

我就打开了代码,定位到出错的那一行。那行代码大概是这个意思:*(1, 1).Value = "你好",就是想往某个工作表的第一个单元格里写点东西。那问题肯定出在MySheet这个变量上了。

我往上翻代码,找这个MySheet是怎么来的。发现有这么一句:Set MySheet = Workbooks("数据.xlsx").Sheets("Sheet1")。意思是把“数据.xlsx”这个工作簿里的“Sheet1”工作表赋值给MySheet

看到这儿,我心里就有数了。 我赶紧去检查我的文件:

424到底怎么回事儿?看完这篇就不再困惑424!

  • 第一步,我先看了看我那个VB程序放的文件夹里,还有没有一个叫“数据.xlsx”的文件。万一不小心删了或者移走了?
  • 第二步,如果文件在,我就打开它,看看里面是不是真的有个叫“Sheet1”的工作表。有时候手一抖,把工作表名字改了或者删了也是常有的事。

果然,检查下来发现,“数据.xlsx”这个文件倒是在,但我打开一看,里面的工作表不叫“Sheet1”,而是叫“汇总数据”!我估计是前几天整理文件的时候,顺手把工作表名给改了,当时也没想到会影响程序。

找到问题就好办了。我当时有两个选择:

424到底怎么回事儿?看完这篇就不再困惑424!

  1. 把Excel里的工作表名改回“Sheet1”。
  2. 修改VB代码,把Set MySheet = Workbooks("数据.xlsx").Sheets("Sheet1")改成Set MySheet = Workbooks("数据.xlsx").Sheets("汇总数据")

考虑到以后可能还会不小心改名,我选了第二种,直接在代码里把引用的工作表名称更新成正确的“汇总数据”。

改完之后,保存代码,再运行,顺畅了!那个烦人的“424”错误再也没跳出来。

424到底怎么回事儿?看完这篇就不再困惑424!

所以说,这“424”错误,很多时候就是些小马虎造成的。可能是文件名写错了,工作表名对不上,或者干脆就是哪个对象变量忘了用Set关键字去给它指定一个实际的东西。遇到这种问题,别慌,静下心来,从出错的地方往回倒推,看看它要操作的那个“对象”到底有没有被正确地指派,问题一般就能解决了。这也算是我实践中的一点小小心得。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,4人围观)

还没有评论,来说两句吧...