如何使用vba宏从excel隐藏彩色文本
如何使用vba宏从excel中隐藏文本?隐藏完整的行或列 您可以隐藏完整的行或列。G据此:如何使用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
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