Excel 在多个表中的单元格中循环并更改字体颜色时的值=

Excel 在多个表中的单元格中循环并更改字体颜色时的值=,excel,vba,Excel,Vba,我有一个电子表格,里面有3-6个表格。我需要使用一个宏,如果行中的任何单元格是红色的,它会将值从“30”更改为“'30”。这是因为红色行被取消预订;我们仍然需要该值,我不希望我的其他公式将该数字计算为有效数字(因为它不是实际的保留)。我已经阅读了许多带有选项的文章,但通常这些文章都有一个范围,该范围是用特定的表名设置的。由于有多个表,表会发生变化,我不知道如何使其动态化。此外,我不想每次都更新宏。如果我可以避免命名特定的表,我的代码可以在每张表上工作(表每月更改)。我的代码的一个问题是,我需要更

我有一个电子表格,里面有3-6个表格。我需要使用一个宏,如果行中的任何单元格是红色的,它会将值从“30”更改为“'30”。这是因为红色行被取消预订;我们仍然需要该值,我不希望我的其他公式将该数字计算为有效数字(因为它不是实际的保留)。我已经阅读了许多带有选项的文章,但通常这些文章都有一个范围,该范围是用特定的表名设置的。由于有多个表,表会发生变化,我不知道如何使其动态化。此外,我不想每次都更新宏。如果我可以避免命名特定的表,我的代码可以在每张表上工作(表每月更改)。我的代码的一个问题是,我需要更改的值总是在J列中。我想,我当前的代码会将整行视为需要更改。我当前收到一个运行时错误6:溢出

Option Explicit

Sub LoopThroughAllTablesInWorksheet()

Dim tbl As ListObject
Dim Cell As Range
Dim OldValue As Integer

For Each tbl In ActiveSheet.ListObjects

        For Each Cell In tbl.DataBodyRange
            If Cell.Font.Color = RGB(255, 0, 0) Then
                OldValue = Cell.Value
                Cell.Value = "'" & OldValue
            End If
        Next Cell

Next tbl

End Sub
我使用以下方法来帮助我达到我的目标:

我能够通过将行“For Each Cell In tbl.DataBodyRange”更改为“For Each Cell In tbl.ListColumns(10.Range)”