【发布时间】:2018-01-15 21:49:54
【问题描述】:
我有一个包含 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
【问题讨论】: