文科生自学VBA-指定区域如单元格背景有颜色则删除其内容

文科生自学VBA-指定区域如单元格背景有颜色则删除其内容

首页休闲益智消除颜色更新时间:2024-05-09

--教育不是灌输,而是点燃火焰,学习编程成就更好的自己--

微软公司Office软件在商业办公领域一直占据着主流和主导地位,其中Excel在数据处理和分析领域有着强大的影响力,大部分人在经历几年职场历练后可以熟练的使用Excel函数透视表功能,基本可以轻松完成绝大多数工作和任务。但实际上Office的强大和独特之处还在于VBA,因为VBA能够胜任好多个性化二次开发,减少重复机械劳动从而实现办公自动化,开发效率高且开发周期短,尤其对于Excel重度使用者来说会了VBA简直就是如虎添翼啊!!!(本人外语专业毕业,机缘巧合爱上编程,自学道路曲曲折折,痛并快乐!)在这里总结一下自学VBA遇到的难点和重点,分享码过的代码和要点总结,希望能够给初学者一点启示和鼓励,同时愿意结交更多大神交流有助提升自己的水平。

今天分享一则跟颜色有关的数据处理案例,如何在指定区域如单元格背景有颜色则删除其内容?通俗点解释就是在指定区域内遍历循环所有单元格,发现某个单元格背景有颜色就要删除其内容。

根据以下截图:找到该区域内所有带颜色单元格并把里面的内容删除。

解决该问题之前,先了解一下VBA颜色基础知识,其实不同颜色都有对应的编号-ColorIndex,可以通过遍历循环的方式展示一下常用颜色:

这里展示了50种常用不同颜色和对应编号,那么单元格默认的透明颜色编号是什么呢?很简单用某个没有使用过的单元格来套取一下透明颜色编号吧:

答案就是:-4142

接下来回到正题,解题思路也很简单:

通过VBA遍历循环指定区域内所有单元格,找到背景颜色不是透明色号的并删除其内容,如下:

是不是并没有想象中那么复杂,爽不爽快!!!能用机器*事情就尽量交代给他老人家做吧!!!

代码如下:

Sub GetColorWithIndex() '获取和展示一些常用的颜色和对应色号 Application.ScreenUpdating = False Sheets("COLOR").Select Dim i As Long, lr As Long lr = ActiveSheet.UsedRange.Rows.Count For i = 2 To lr Step 1 Range("B" & i).Interior.ColorIndex = Range("A" & i).Value Range("D" & i).Interior.ColorIndex = Range("C" & i).Value Next i Application.ScreenUpdating = False End Sub Sub GetOriginalColor() '获取透明单元格颜色编号 Application.ScreenUpdating = False Sheets("COLOR").Select Debug.Print Range("F1").Interior.ColorIndex '在立即窗口里查看结果 Application.ScreenUpdating = False End Sub Sub ClearContentWIthColorRegion() Application.ScreenUpdating = False Sheets("TASK").Select Dim lr As Long, lc As Long lr = ActiveSheet.UsedRange.Rows.Count '获取最大行数 lc = ActiveSheet.UsedRange.Columns.Count '获取最大列数 Dim myRange As Range '循环遍历删除指定区域内所有背景有颜色的单元格内容 For Each myRange In Range(Cells(2, 1), Cells(lr, lc)) If myRange.Interior.ColorIndex <> -4142 Then myRange.ClearContents End If Next myRange Application.ScreenUpdating = False End Sub

以后碰到类似与颜色相关的问题,小伙伴们是不是也胸有成竹了呢??

END

我为人人,人人为我!!欢迎大家关注,点赞和转发!!!

~~人生不是赛场,梦想不容退场~~不断努力学习蜕变出一个更好的自己,不断分享学习路上的收获和感悟帮助他人成就自己!!!

,
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved