当前位置: 首页 > news >正文

VBA批量设置多列条件格式

今天对工作台帐进行了更新,领导增加了要求,现把deepseek的代码保存这里,供以后使用。

Sub AddConditionForRows()Dim wsName As StringDim targetWs As WorksheetDim row As IntegerDim sheetIndex As IntegerDim colLetter As VariantDim targetCols As VariantDim formula As String' 定义需要处理的列targetCols = Array("I", "M")' 关闭屏幕更新,提高执行速度Application.ScreenUpdating = FalseOn Error GoTo ErrorHandler' 遍历3月1日到3月31日的工作表For sheetIndex = 1 To 31wsName = "3月" & sheetIndex & "日"' 尝试获取工作表Set targetWs = NothingOn Error Resume NextSet targetWs = Worksheets(wsName)On Error GoTo 0If Not targetWs Is Nothing Then' 对每一行进行处理 (2到52行)For row = 2 To 52' 对每个目标列应用条件格式For Each colLetter In targetCols' 构建当前行的公式formula = "=AND($D$" & row & "<>""""," & colLetter & "$" & row & "="""")"' 设置条件格式With targetWs.Range(colLetter & row).FormatConditions.Delete  ' 删除该单元格原有的条件格式.Add Type:=xlExpression, Formula1:=formula.Item(1).Interior.Color = RGB(255, 165, 0)  ' 橙色背景End WithNext colLetterNext rowEnd IfNext sheetIndexMsgBox "运行结束,共处理 " & sheetIndex - 1 & " 个工作表的 " & (row - 2) * UBound(targetCols) + 1 & " 个单元格"Cleanup:Application.ScreenUpdating = TrueExit SubErrorHandler:MsgBox "发生错误: " & Err.Description & " (行: " & row & ", 列: " & colLetter & ")"Resume Cleanup
End Sub

另一个版本的,接近原来代码。

Sub AddCondition_OriginalStyle()Dim wsName As StringDim targetWs As WorksheetDim row As IntegerDim sheetIndex As IntegerDim startTime As DatestartTime = NowApplication.ScreenUpdating = False' 遍历31天For sheetIndex = 1 To 31wsName = "3月" & sheetIndex & "日"' 检查工作表是否存在On Error Resume NextSet targetWs = Worksheets(wsName)On Error GoTo 0If Not targetWs Is Nothing Then' 逐行设置 I 列的条件格式For row = 2 To 52With targetWs.Range("I" & row).FormatConditions.Delete.Add Type:=xlExpression, Formula1:="=AND($D$" & row & "<>"""",$I$" & row & "="""")".Item(1).Interior.Color = RGB(255, 165, 0)End WithNext row' 逐行设置 M 列的条件格式For row = 2 To 52With targetWs.Range("M" & row).FormatConditions.Delete.Add Type:=xlExpression, Formula1:="=AND($D$" & row & "<>"""",$M$" & row & "="""")".Item(1).Interior.Color = RGB(255, 165, 0)End WithNext rowEnd IfNext sheetIndexApplication.ScreenUpdating = TrueMsgBox "运行结束,耗时: " & Format(Now - startTime, "hh:mm:ss")
End Sub

有什么需求,就让Deepseek完成。

http://www.jsqmd.com/news/426435/

相关文章:

  • 基于SpringBoot+Vue的公益服务平台管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • Java Web 来访管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 【毕业设计】SpringBoot+Vue+MySQL 在线政务服务中心_nrlwabo平台源码+数据库+论文+部署文档
  • 2026年甘肃AI搜索优化平台深度评测与采购指南 - 2026年企业推荐榜
  • 突破Steam创意工坊壁垒:WorkshopDL让跨平台模组下载变得简单高效
  • 2025最新Discord隐藏频道可视化完全指南:从权限原理到实战应用
  • 颠覆性像素识别:Botty 3大突破如何重构暗黑2重制版自动化体验
  • 游戏模组开发框架配置指南
  • 5个硬核调校技巧:用GHelper开源工具实现华硕笔记本硬件效能最大化
  • 颠覆式网页资源嗅探指南:从入门到精通的5个关键突破
  • 3分钟上手WorkshopDL:Steam创意工坊跨平台下载神器完全指南
  • Java SpringBoot+Vue3+MyBatis 高校电动车租赁系统系统源码|前后端分离+MySQL数据库
  • 突破窗口限制:WindowResizer实现桌面空间自由掌控
  • BilibiliDown:B站音频无损提取的开源解决方案
  • SMUDebugTool技术解析:AMD处理器调试实践指南
  • TikTok评论智能采集工具:让社交媒体数据分析效率提升10倍
  • PROPKA生物分子pKa预测实用指南:从基础到高级应用
  • BilibiliDown:让B站音频下载效率提升3倍的开源工具
  • 7个步骤完全掌握Flashtool:索尼Xperia设备刷机终极指南
  • 窗口智能管理:如何用Boss-Key提升工作专注力与隐私保护?
  • PotplayerPanVideo:突破网盘播放限制的流畅解决方案
  • 智能PPT提取:让视频转课件效率提升10倍的技术方案
  • OpenCore Legacy Patcher实战指南:让旧Mac重获新生的系统升级方案
  • 重构Steam创意工坊壁纸获取流程:Wallpaper Engine工具效率突破指南
  • Windows ADB驱动高效解决方案:告别Android设备连接烦恼
  • STL到STEP的几何重构技术:从网格模型到实体设计的跨越
  • OpCore-Simplify:让黑苹果EFI配置从迷宫探索变为导航式体验
  • QMK Toolbox:释放机械键盘无限可能的开源定制神器
  • PDF高效转换实战:零基础掌握pdf2image工具应用指南
  • 开源工具Lenovo Legion Toolkit:解锁游戏本性能调控潜能