欢迎光临散文网 会员登陆 & 注册

ExcelVBA 对筛选后的结果列填充

2023-06-02 14:37 作者:孙兴华zz  | 我要投稿

网友提问:

回答网友问题:

我做个简单的表,描述一下这个意思

原始表

网友需要筛选科目为语文的,别名写国语

最终效果

当然我们可以使用For循环或Do While循环判断,科目="语文" 时 别名="国语"

方法我提供给你,但是这不是今天要说的,因为您的要求,我不能所问非所答。

先提供For循环的

再提供Do While循环的

但是这不是您要的答案,我相信您学到了AutoFilter肯定会写这两种循环。

但是解决您的需求,要从Excel基础篇讲起。

我们讲过,筛选后的填充方法

我们手工的筛选科目=语文的

然后手工选中B2到B6

在公式栏上输入  ="国语"

然后按 Ctrl+Enter 组合键

填充完成,取消筛选后可以看到结果

把我刚才说的这几步,通过录宏,得到代码

我们可以用大胆假设,小心求证的方法来验证,把Range("B2:B6") 改成 Range("B2:B7") 结果是一样的,所以我们得出结论,就是B列第2行到最大行这个区域。

大胆假设,小心求证  是董宇辉老师在直播时告诉我们的,我特别喜欢他们那个机构,要说卖英语课,人家的机构是国内一哥,但是在转型的时候,人家帮农民伯伯卖农作物,而不是教农民伯伯学英语,他们完全可以像某些讲师一样,拿科学家出来举例,但是,人家没那么做。他们明白,农民伯伯把种出来的东西卖出去才是对他们最大的帮助。

所以哈罗雷球白夕尚等等数百名让我学英语的讲师,应该自我反省。


有了董老师的神助攻,我们的代码也出来了

知道工作表最大行的行号,筛选第3列的语文,对B2到B列最大行选中,输入公式,取消筛选

这题虽不是说必须会Excel基础才能做,只是按您需求做答。


之后网友反馈录的那行代码在他的电脑上不能运行 ,我猜测是软件版本问题

于是我在Excel2003上录制了代码

修改后,既可以在Excel2003~2021  也可以在office365的Excel上通用

Excel基础篇:https://www.bilibili.com/video/BV1Z7411c7U6

ExcelVBA教程:https://www.bilibili.com/video/BV1rt4y1a72y

ExcelVBA 对筛选后的结果列填充的评论 (共 条)

分享到微博请遵守国家法律