ExcelVBA 对筛选后的结果列填充
网友提问:



回答网友问题:
我做个简单的表,描述一下这个意思

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

当然我们可以使用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