【问题标题】:VBA change cell's value if it has a user defined style如果单元格具有用户定义的样式,则 VBA 更改单元格的值
【发布时间】:2015-01-19 22:06:32
【问题描述】:

我想将 Excel 电子表格中特定的用户定义样式(比如说“美”样式)中的所有单元格更改为“野兽”。

Sub BulkChangeValeOfStyle() Dim TheCell As Range For Each TheCell In ActiveSheet.UsedRange.Cells If TheCell.Style = "Beauty" Then TheCell.Value = "Beast" End If Next End Sub

这段代码太慢了。我在电子表格周围散落了很多美容细胞。有没有可能变成这样:

ActiveSheet.AllCellsWithaStyle="Beauty".value="Beast"

更新 这只是一个想法: ActiveSheet.Cells.SpecialCells(xlCellTypeSameFormatConditions).Activate 或者 ActiveSheet.Cells.SpecialCells(xlCellTypeSameValidation).Activate

但我不知道如何设置确定xlCellTypeSameFormatConditions 的标准。或xlCellTypeSameValidation 的标准。有人知道吗?

【问题讨论】:

  • 请评论 TheCell.Value = "Beast" 并告诉我们这是否会在所花费的时间上有很大的不同。因此,我们知道是搜索还是更新花费了这么多时间。
  • 我不能给你任何更好的建议然后限制你搜索这种风格的范围。
  • 尝试在循环前设置Application.ScreenUpdating = False

标签: vba excel stylesheet


【解决方案1】:

我认为不可能有比您的For Each 循环更好的解决方案。但是您应该为要修改的单元格创建一个新样式,并在需要时修改该样式的格式属性,如下所示:

ThisWorkbook.Styles.Item("Good").Interior.ColorIndex=4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多