更改方括号中文本的颜色

问题描述 投票:0回答:1

我在 Google 表格中有数据,想选择全部 - 复制 - 粘贴到 Excel 中。

对于某些行,方括号内有文本,我需要将其显示为红色。

示例:“在此处插入文本 [突出显示的文本]”

我目前正在使用这个宏:

    Private Sub Worksheet_Change(ByVal Target As Range)
Dim Text As String
Dim Index1 As Long
Dim Index2 As Long
Text = Target.Text
Index2 = 1
Do
    Index1 = InStr(Index2, Text, "[")
    If Index1 = 0 Then Exit Do
    Index2 = InStr(Index1, Text, "]")
    If Index2 = 0 Then Exit Do
    Target.Characters(Index1, Index2 - Index1 + 1).Font.Color = &HFF
Loop
    End Sub

如果我一行一行地移动数据,它就会起作用。

但是,它有几千行数据,所以我需要全部选择、全部复制、全部粘贴。 当我这样做时,宏不再起作用(会弹出错误消息)。

我对 Excel 宏非常陌生,所以如果可能的话,请逐步指导我,我将非常感激!

excel vba
1个回答
0
投票

当您粘贴范围时,

Target
也将是一个范围而不是单个单元格。
因此需要迭代范围。
下面的代码模块可以做到这一点。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Text As String
Dim Index1 As Long
Dim Index2 As Long

For Each cel In Target
Text = cel.Text
Index2 = 1
    Index1 = InStr(Index2, Text, "[")
    If Index1 <> 0 Then
        Index2 = InStr(Index1, Text, "]")
        If Index2 <> 0 Then
            cel.Characters(Index1, Index2 - Index1 + 1).Font.Color = &HFF
        End If
    End If
Next cel
    End Sub

© www.soinside.com 2019 - 2024. All rights reserved.