Range.Find方法似乎莫名其妙地不起作用
我有一个包含大量数据列的工作簿。我想把它改成使用已分配的列变量来代替数字,因为如果需要之后再添加列,数字会让事情变得非常麻烦。
所有列在第3行都带有标签,我正在使用Range.Find.Column方法来分配变量,但不知为何,部分标签找不到,从而导致运行时错误91:对象变量未设置。下面是所用代码的一个示例。这是以这种方式分配的第9个变量,但这是第一个出现错误的。
Set rng = Sheets("Log").Range(Cells(3, 1), Cells(3, tc - 1))
hepricec = rng.Find("He.Price", , xlValues).Column
我尝试先添加再移除xlWhole以看看是否有变化,甚至还尝试从工作表复制标签并粘贴到代码中的搜索参数里,但仍然不起作用。
此处分配的列号将用于后续代码中的读写数据,因此我需要知道是什么阻止它被赋值。到目前为止,我对这个话题的研究似乎表明,该行在范围内找不到列名字符串,尽管它显然在那里。
enter image description here 显示标签、列和行的工作表屏幕截图。
解决方案
我终于搞清楚问题出在哪儿。我把该列设为了会计(Accounting)数据类型,所以VBA似乎没有把它当成字符串来读取。我把标题行改成文本(Text),问题就解决了。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。