我有一个电子表格,其中有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
发布于 2018-01-16 06:06:00
为此,我将"For Each Cell In tbl.DataBodyRange“行改为"For Each Cell In tbl.ListColumns(10).Range”。
https://stackoverflow.com/questions/48271132
复制相似问题