Excel VBA 每日一场景 单元格选择小陷阱 学会避错免跳坑

Excel VBA 每日一场景 单元格选择小陷阱 学会避错免跳坑
2021年05月12日 10:30 晓雯子16

说到单元格的选择,相信大家都知道,直接用range.select就可以实现了。

没错,在常规情况下,我们直接用这个方式,是可以实现单元格的选择的。

Sub test()Dim rng As RangeSet rng = Range(Cells(1, 1), Cells(10, 4))rng.Select End Sub

我们简单的写下代码

非常的简单,正是因为这个单元格的选择方法非常的简单

所以很多的小伙伴们在学习的过程中,并不是很在意这个select方法,反而在一些小细节的问题上掉坑里了。

比方单元格数据的复制,有小伙伴会选择使用单元格的选择来进行数据的复制,那么看下下面的代码

Sub test()Dim rng As RangeSet rng = Worksheets(1).Range(Cells(1, 1), Cells(10, 4))rng.SelectSelection.Copy Worksheets(2).Cells(1, 1) End Sub

目的就是将第一个工作表的数据区域,复制到第二个表去,非常简单,一下子就可以实现了。

但是,换个场景就可能会报错。

为什么会这样呢

明明都是一样的代码,为什么换个场景就会报错呢?那么这个报错的原因到底是什么呢?

问题就在这个单元的选择上面,我们都是知道range.select方法,其实和我们手工去操作单元格的选中效果是一样的

那么我们回想下,当我们操作单元格的选中的时候,是不是有一个不可忽视的大前提,那就是

单元格必须是可见的

在这场景中,比方说我们要将sheet1的利用select方法选中的时候,我们是不是应该保证

当前我们能够看到sheet1,即sheet1是一个活动工作表

所以第二次我们换个场景的时候,留意我们上面的截图,活动工作表是sheet2

所以才会出现换个场景, 就报错,代码无法使用。

为什么会在今天讲述这样的场景呢?

主要是因为之前有不少的小伙们,在自学VBA的过程中,经常从网上copy代码

网上的代码,有时候本身也没有错的(因为我没有细细研究,我一般不太喜欢修改或者研究他人的代码)

但是很多时候,小伙伴们在copy代码之后,运行的时候,就会出现这样的情况,总是有各种不同的报错

排除因为场景不同的报错,剩下的就是这些小细节方面的报错了。

所以也是经常非常的头疼,看到报错,又不知道错在哪里,性子急的 小伙们就可能会为了一个问题,研究到深夜

非常佩服这样的小伙们,毕竟我当年也是这样学习过来的。

所以为了避免大家出现这样的问题,所以今天就讲一下这个细节上的问题

希望大家在使用代码和copy代码的时候,能够避开这些坑。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部