如何使用vba宏从excel隐藏文本?
答案 0 :(得分:2)
您可以隐藏完整的行或列e。 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,0,255)),我的代码检查该颜色的蓝色部分是否高于红色和绿色部分。
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
如果要使白色字符尽可能窄,则可以另外选择窄字体和小字体,如下所示:
c.Characters(i, 1).Font.Name = "Arial Narrow"
c.Characters(i, 1).Font.Size = 1
c.Characters(i, 1).Font.Subscript = True