【问题标题】:VBA Excel to highlight range on another worksheetVBA Excel突出显示另一个工作表上的范围
【发布时间】:2015-11-17 16:02:30
【问题描述】:

在这里潜伏了很长时间,我终于被难住了,试图编写一些 VBA 来突出显示另一个工作表上从 B 列到 S 的列,对于在另一个工作表上 S 列中的值大于 H10 的所有行。此代码工作正常:

Dim i As Long
For i = 2 To Rows.Count
If Worksheets("Initial Data").Cells(i, 19).Value > Worksheets("Inputs").Range("H10").Value Then
Worksheets("Initial Data").Cells(i, 19).Interior.ColorIndex = 4
End If
Next i
Worksheets("Initial Data").Activate

这将突出显示 S 列中所需的每个单元格。我想做的是突出显示从 B 到 S 的单元格,如下所示:

Dim i As Long
For i = 2 To Rows.Count
If Worksheets("Initial Data").Cells(i, 19).Value > Worksheets("Inputs").Range("H10").Value Then
Worksheets("Initial Data").Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 2
End If
Next i
Worksheets("Initial Data").Activate

...但它不起作用,我收到运行时错误。这太令人沮丧了,因为我已经完成了大部分困难的事情!

哦,在任何人建议条件格式之前,sub 读取的数据每次都是新粘贴的,所以这是不行的。感谢您的任何意见!

【问题讨论】:

  • 数据是 .Paste

标签: vba excel range worksheet


【解决方案1】:

尝试在.Cells(i, 2) vba 不知道您的意思是哪个单元格之前删除点

更改Worksheets("Initial Data").Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 2Worksheets("Initial Data").Range(Cells(i, 2), Cells(i, 19)).Interior.ColorIndex = 2

或使用With -> msdn:

With Worksheets("Initial Data")
    .Range(.Cells(i, 2), .Cells(i, 19)).Interior.ColorIndex = 4
End With

【讨论】:

  • 第一个没有用,但是 With 语句很好用,谢谢!我之前尝试过 with 语句,但没有 .
  • 你也可以查看Worksheets("Initial Data").Range(Worksheets("Initial Data").Cells(i, 2), Worksheets("Initial Data").Cells(i, 19)).Interior.ColorIndex = 2
  • @Dawid 如果没有With ...,当且仅当Initial Data 是活动工作表时,您的(第一个)建议才有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多