gpt4 book ai didi

vba - 查找具有特定颜色的范围内的单元格并添加注释

转载 作者:行者123 更新时间:2023-12-04 20:15:02 24 4
gpt4 key购买 nike

我正在尝试创建一个宏,它将在文本列 (A:A) 中搜索特定的内部颜色。在这种情况下,内部颜色为 55。通常我会创建 A1:A101 的范围。但是添加的数据每天都在变化,因此可能或多或少。

基本上,一旦宏用颜色识别单元格,我希望宏向单元格添加注释。像“Hello World!”这样简单的东西。

到目前为止,这就是我所拥有的:

Sub AddCommentBasedOnColor()
Dim rng As Range, cell As Range

Set rng = Range("G:G")

Application.ScreenUpdating = False
Application.Calculation = xlManual
For Each cell In rng
If cell.Interior.ColorIndex = 55 Then
If rng.Comment Is Nothing Then rng.AddComment
rng.Comment.Text "Possible Aux Stacking"
End
End If
Next cell

Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub

我遇到的问题是,当我运行代码时,注释部分根本不起作用。没有发表评论,由于某种原因,我得到了一个调试代码,但之前没有。不知道我做了什么改变了它。

此外,当我删除此代码的注释部分时,它确实需要一些时间才能运行,任何有关缩短该时间长度的帮助也将不胜感激。

最佳答案

您的代码存在逻辑问题。

rng.AddComment您尝试将整个 G 列的注释设置为 rng是整个 G 列。这是不可能的。

和你的内心 If声明的工作方式如下:

...
If rng.Comment Is Nothing Then rng.AddComment
rng.Comment.Text "Possible Aux Stacking"
End
...

如果 rng.Comment那么什么都没有 rng.AddComment .这里 If结束。下一个程序行正在处理,没有附加条件, End然后在此时结束 Sub。

为了缩短处理时间,您不必遍历 G 列中的所有行。这可以通过计算最后使用的行来实现。如何做到这一点取决于您如何定义最后使用的行。由于您正在使用单元格的内部,因此我将最后使用的行定义为最后一行,其中的单元格不具有空单元格的默认内容。
Sub AddCommentBasedOnColor()
Dim rng As Range, cell As Range, lastUsedRow As Long

With ActiveSheet
lastUsedRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
Set rng = .Range("G1:G" & lastUsedRow)

For Each cell In rng
If cell.Interior.ColorIndex = 55 Then
If cell.Comment Is Nothing Then
cell.AddComment
cell.Comment.Text "Possible Aux Stacking"
End If
End If
Next cell

End With
End Sub

关于vba - 查找具有特定颜色的范围内的单元格并添加注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com