循环遍历多个表格中的单元格并在字体颜色=

时间:2018-01-15 21:49:55

标签: excel-vba vba excel

我的电子表格中有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

我使用以下内容帮助我了解自己的位置:http://www.TheSpreadsheetGuru.com/the-code-vault https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables

1 个答案:

答案 0 :(得分:1)

我能够通过改变线路来完成这项工作" For Each Cell in tbl.DataBodyRange" to"对于每个单元格在tbl.ListColumns(10).Range"。