吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1233|回复: 2
收起左侧

[求助] VB入门级问题

[复制链接]
Ta'ta 发表于 2022-5-19 18:54
25吾爱币
本帖最后由 Ta'ta 于 2022-5-19 19:00 编辑

示例

示例


怎么能达到  指定行后变换颜色(有可能是13行或者18,后续需要自定义),两种颜色穿插
PS: 很多行,几千上万

自己写的源码(第一天接触VB,尽管笑话吧)

[Visual Basic] 纯文本查看 复制代码
Sub 测试第一版()
'








  Range("A3:N13").Select
   With Selection.Interior
       .Pattern = xlPatternSolid
        .ThemeColor = 5
       .TintAndShade = 0.8
  End With
    Range("A14:N24").Select
    With Selection.Interior
        .Pattern = xlPatternSolid
        .ThemeColor = 6
        .TintAndShade = 0.8
    End With
    Range("A25:N35").Select
    With Selection.Interior
        .Pattern = xlPatternSolid
        .ThemeColor = 5
        .TintAndShade = 0.8
    End With
    
    Range("A36:N46").Select
    With Selection.Interior
        .Pattern = xlPatternSolid
        .ThemeColor = 6
        .TintAndShade = 0.8
    End With
    Range("A47:N57").Select
    With Selection.Interior
        .Pattern = xlPatternSolid
        .ThemeColor = 5
        .TintAndShade = 0.8
    End With
    Range("A58:N68").Select
    With Selection.Interior
        .Pattern = xlPatternSolid
        .ThemeColor = 6
        .TintAndShade = 0.8
    End With
    
    
End Sub

最佳答案

查看完整内容

如果非要写脚本,不能这么设置,需要循环,按照A列去找groupCount,颜色 = 6 - mod(groupCount, 2) ,再对group设置颜色。 比如3-13,是一个group,那么groupCount = 1, 颜色 = 5 14-24,是另一个group,那么groupCount = 2, 颜色 = 6 25-35,是另一个group,那么groupCount = 3, 颜色 = 5 ... [mw_shl_code=vb,true]Sub addColor() ' 假设A列是分组用的数据 Dim COL_GROUP As Long COL_GROUP = 1 ...

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

unmask 发表于 2022-5-19 18:54
本帖最后由 unmask 于 2022-5-19 20:37 编辑

如果非要写脚本,不能这么设置,需要循环,按照A列去找groupCount,颜色 = 6 - mod(groupCount, 2) ,再对group设置颜色。
比如3-13,是一个group,那么groupCount = 1, 颜色 = 5
14-24,是另一个group,那么groupCount = 2, 颜色 = 6
25-35,是另一个group,那么groupCount = 3, 颜色 = 5
...

[Visual Basic] 纯文本查看 复制代码
Sub addColor()
    ' 假设A列是分组用的数据
    Dim COL_GROUP As Long
    COL_GROUP = 1
    
    Dim sht As Worksheet
    Dim row As Long, rowPrev As Long, groupCount As Long, color As Integer
    Dim key As String, keyPrev As String
    
    Set sht = ActiveSheet
    rowPrev = 3
    keyPrev = ""
    groupCount = 0
    For row = 3 To sht.UsedRange.Rows.Count + 10
        key = sht.Cells(row, COL_GROUP)
        If key <> keyPrev Then
            ' 发现新的分组
            keyPrev = key
            If row > rowPrev Then
                ' 从第2group开始对前一group涂色
                groupCount = groupCount + 1
                color = 6 - groupCount Mod 2
                
                ' 涂色
                Range("A" & rowPrev & ":N" & row - 1).Select
                With Selection.Interior
                    .Pattern = xlPatternSolid
                    .ThemeColor = color
                    .TintAndShade = 0.8
                End With
                
                ' 记录新group开始的row
                rowPrev = row
            End If
        End If
    Next
End Sub
unmask 发表于 2022-5-19 20:07
不需要写脚本的,直接条件格式就可以搞定的。
从A3开始选择需要设置的格式的范围,
然后条件格式中选择使用公式去定要设置格式的单元格,
然后公式:=MOD(COUNTA(UNIQUE($A$3:$A3)), 2)
然后在格式中设置颜色。

免费评分

参与人数 1吾爱币 +1 收起 理由
菜鸟出学习 + 1 简单直接,拒绝花里胡哨

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 14:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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