Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用vba宏从excel隐藏彩色文本_Excel_Vba - Fatal编程技术网

如何使用vba宏从excel隐藏彩色文本

如何使用vba宏从excel隐藏彩色文本,excel,vba,Excel,Vba,如何使用vba宏从excel中隐藏文本?隐藏完整的行或列 您可以隐藏完整的行或列。G据此: Worksheet(...).Range(...).EntireRow.Hidden = True Worksheet(...).Range(...).EntireColumn.Hidden = True 您还可以对行或列进行分组,并设置大纲级别以隐藏它们: Worksheet(...).Range(...).EntireRow.Group Worksheet(...).Outline.ShowLeve

如何使用vba宏从excel中隐藏文本?

隐藏完整的行或列 您可以隐藏完整的行或列。G据此:

Worksheet(...).Range(...).EntireRow.Hidden = True
Worksheet(...).Range(...).EntireColumn.Hidden = True
您还可以对行或列进行分组,并设置大纲级别以隐藏它们:

Worksheet(...).Range(...).EntireRow.Group
Worksheet(...).Outline.ShowLevels RowLevels:=1
无法隐藏单个单元格(只能将其删除,但这会移动其下的其他单元格)

隐藏部分单元格 不幸的是,您可以通过
Font.Hidden

在单元格中隐藏某些字符,如Microsoft Word中的字符 但通过以下代码,您可以将所有蓝色字符更改为非常小的白色字符

由于有许多不同的“蓝色”(不仅仅是RGB(0,0255)),我的代码会检查颜色的蓝色部分是否高于红色和绿色部分

Private Sub ChangeBlueTextToWhiteText()
    Dim ws As Worksheet
    Dim i As Integer
    Dim c As Range
    Dim currentColor As Long
    Dim r As Byte, g As Byte, b As Byte
    
    Set ws = ActiveSheet
    For Each c In ws.UsedRange.Cells
        If c.Characters.Count > 0 Then
            For i = 1 To c.Characters.Count
                
                currentColor = c.Characters(i, 1).Font.Color
                If currentColor < 0 Then currentColor = &H1000000 - currentColor
                r = currentColor Mod 256             ' red part
                g = currentColor \ 256 Mod 256       ' green part
                b = currentColor \ (2 ^ 16) Mod 256  ' blue part
                
                If b > r And b > g Then ' if blue part is largest, then it's kinda "blue"
                    c.Characters(i, 1).Font.Color = vbWhite
                End If
            Next i
        End If
    Next c
    Set ws = Nothing
End Sub

这可能会给你一个方向,但选择单元格中的部分文本-我不知道你会如何“隐藏”它,可能会复制一个单元格并使用delete保留其余部分,但无论如何:循环遍历所有单元格,循环遍历单元格中的所有字符。如果角色的颜色是蓝色,则将其更改为白色。当您将问题更改为一般方法时,我在回答中添加了一些示例。如果有帮助,请将其标记为答案。
c.Characters(i, 1).Font.Name = "Arial Narrow"
c.Characters(i, 1).Font.Size = 1
c.Characters(i, 1).Font.Subscript = True