【问题标题】:Greater than Conditional Formatting using VBA大于使用 VBA 的条件格式
【发布时间】:2015-02-23 01:21:30
【问题描述】:

您好,我使用带有 XMLHTTP 请求的自定义函数从网站获取了一些数据,现在我需要对复制的数据应用一些格式化条件,我将不胜感激使用 VBA 的一些建议:

活动单元格“B”列

小于 10 个红色 10 到 15 黄色 超过15个绿色

所有不返回任何数字的单元格都应该是空白的

谢谢

【问题讨论】:

  • 您是否尝试过在使用宏记录器时手动应用该格式?
  • 您可以使用条件格式而无需重复使用 VBA。
  • 我尝试使用宏记录,但没有按我的需要工作,因为空单元格也有颜色

标签: vba excel


【解决方案1】:

有两种方法可以做到这一点:

简单的方法:

使用 Excel 内置条件格式(选择您的范围并单击 主页 选项卡 > 条件格式 > 添加 规则 或从默认规则 -我认为它有足够广泛的选项来满足您的需求。)

哲学之道:

从您的 VBA IDE 添加一个新模块。

复制并粘贴此代码:

 Sub ColorRange()
Dim d as Double
Dim r As Range
Set r = ActiveSheet.Range("B1:B500")
For Cell in r
If Cell.Text <> "" And IsNumeric(Cell.Value) = True Then
If Cell.Text < 10 Then
Cell.Interior.Color = RGB(255, 0, 0)
ElseIf Cell.Text >= 10 And Cell.Text <= 15 Then
Cell.Interior.Color = RGB(255, 255, 0)
Else
Cell.Interior.Color = RGB(0, 255, 0)
End If
End If
Next
End Sub

并运行宏。

这是一个输出示例:

我推荐哪一个?

我建议您使用条件格式,如果旧的内置 Excel 功能可以处理它,则不需要 VBA 魔法,除非您需要证明并非如此。

【讨论】:

  • 但它不适用于 B 列,因为我使用“=giveMeValue(A1)”从网站复制了一些数据
  • 数据必须是双精度数据类型,否则无效。
  • 好的 ...但是如果我必须将其设为 bouble 数据类型,并且例如使用 B1=A1 来复制该值,它无论如何都不起作用
  • 你能不能用 B5 做debug.print(Range("B5") &amp; " " &amp; Typename(Range("B5").Value) &amp; " " &amp; Range("B5").Text)(例如)看看你得到了什么。
  • 这是返回 "B5" 19 String 19
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
相关资源
最近更新 更多