吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 428|回复: 4
收起左侧

[经验求助] 求WPS表格中自动底色的实现方法

[复制链接]
批注 发表于 2024-7-10 22:03
40吾爱币
https://wwp.lanzouw.com/iirgX243l2zi
密码:bd40

WPS表格中要实现的效果:每12行显示一种底色(“要实现的效果”工作表中有示意)
请在sheet2完成,可用公式或者条件格式等方式,非手工逐项设置。

最佳答案

查看完整内容

条件格式 https://iil.lanzouw.com/iLNYj244w6wb

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

CC 发表于 2024-7-10 22:03
条件格式
https://iil.lanzouw.com/iLNYj244w6wb
yuqic987 发表于 2024-7-11 01:00
这个只能使用VBA解决了,首先确认你的wps启用了宏功能,然后按AIT+F11,开启VBA窗口,右键Sheet2插入模块,然后双击模块填入以下代码后按F5即可实现,颜色在VBA窗口模块的代码内修改。
成品下载:https://wwf.lanzouq.com/ib8th244mjpc 密码:3e6h
=====================================================================
Sub SetColorBlocksEvery12Rows()  
    Dim ws As Worksheet  
    Dim lastRow As Long  
    Dim i As Long  
    Dim blockColorIndex As Integer  
    Dim colors() As Long  
      
    ' 设置要操作的工作表  
    Set ws = ActiveSheet  
      
    ' 初始化颜色数组  
    ' 这里定义了多种颜色,数量可以根据需要调整,但循环将基于数组长度  
    ReDim colors(0 To 3) ' 示例中使用了4种颜色,您可以根据需要增加更多颜色  
    colors(0) = RGB(255, 0, 0)    ' 红色  
    colors(1) = RGB(0, 255, 0)    ' 绿色  
    colors(2) = RGB(0, 0, 255)    ' 蓝色  
    colors(3) = RGB(255, 255, 0)  ' 黄色  
      
    ' 确定要设置颜色的最后一行(这里以A列为例)  
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row  
      
    ' 遍历每一行,但每12行块使用相同的颜色  
    For i = 1 To lastRow Step 12  
        ' 计算当前12行块应该使用的颜色索引  
        ' 注意:由于Step是12,所以这里直接使用i除以12的商作为索引可能会超出数组范围  
        ' 因此我们使用(i - 1) \ 12来计算块索引,并确保它不会超出数组长度  
        blockColorIndex = (i - 1) \ 12 Mod UBound(colors) + 1  
         
        ' 为当前12行块设置颜色  
        ' 注意:由于我们是从i开始的,所以需要设置到i + 11(如果i + 11不大于lastRow)  
        Dim endRow As Long  
        endRow = IIf(i + 11 > lastRow, lastRow, i + 11)  
        ws.Range(ws.Rows(i), ws.Rows(endRow)).Interior.Color = colors(blockColorIndex - 1)  
        ' 注意:由于我们使用了Mod运算和+1来确保索引不会为0(如果颜色数组从0开始),  
        ' 但在设置颜色时我们需要从数组的实际索引(可能是从0开始)中获取颜色,  
        ' 所以这里用colors(blockColorIndex - 1)来确保索引正确。  
        ' 如果您的颜色数组是从1开始的(如上例所示),则不需要-1。  
    Next i  
      
    ' 注意:上面的代码在颜色数组索引上做了调整以适应从0开始的索引(如果需要的话)。  
    ' 但在这个特定的例子中,由于颜色数组是从0开始的,并且我们通过(i - 1) \ 12计算块索引,  
    ' 实际上我们不需要-1,因为Mod运算和+1的组合已经确保了索引的正确性。  
    ' 所以,对于上面的颜色数组和计算方式,直接使用colors(blockColorIndex)即可。  
      
    ' 可选:为了清晰起见,我保留了上面的注释,但在实际使用中应该使用:  
    ' ws.Range(ws.Rows(i), ws.Rows(endRow)).Interior.Color = colors(blockColorIndex)  
      
    ' 显示一个消息框提示操作完成  
    MsgBox "颜色块设置完成!"  
End Sub

 楼主| 批注 发表于 2024-7-11 18:49
yuqic987 发表于 2024-7-11 01:00
这个只能使用VBA解决了,首先确认你的wps启用了宏功能,然后按AIT+F11,开启VBA窗口,右键Sheet2插入模块, ...

麻烦您了,实在不会这个,楼下的条件格式成功实现了我的需求!
 楼主| 批注 发表于 2024-7-11 18:52
CC 发表于 2024-7-10 22:03
条件格式
https://iil.lanzouw.com/iLNYj244w6wb

非常感谢,虽然不懂公式,但是我需要的效果实现了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-11 22:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表