2016-09-28 130 views
0

对于Excel电子表格订单表单,我需要一种方法将条件格式应用于包含一个宏的所有行,从第78行开始直到没有更多数据。Excel - 将大量条件格式转换为VBA

每列都有自己的条件格式公式。有些有多个公式。我尝试过使用Record Macro函数,但由于发生了太多的事情,导致的VBA代码很混乱,我不确定如何将它们结合在一起。

我不需要有人为我编写所有的代码,但我希望我能得到一些指导,找出如何做到这一切。

大约有15列需要应用条件格式。这里有几个栏显示什么我的工作:

A78:

公式:= AND($ A $ 78 = “”,COUNTA(78:78)> = 1)|白色文字,红色填充|停止 如果真

C78:

格式只包含细胞>特定文本>用> M开头| 无格式| Stop If True

仅格式化包含>特定文本>以> F | 无格式|停止如果为真

仅格式化包含>无错误|红色的背景,白色 文本

D78:

单元格的值大于300

+0

你说你不希望有人为你写**所有**的代码,你有哪一点? –

+1

[第1步 - 从宏记录器开始](https://support.office.com/zh-cn/article/Step-1-Start-with-the-macro-recorder-6DC53056-1DE1-4483-AA07- 63E4E0EFE3C2)。 – Jeeped

+0

我已经试过使用录音机了,正如我已经说过的。但是,当我之后运行它时,它不起作用。如果有人能够帮助我完成上面发布的代码,我想我可以完成剩下的工作。 – Robby

回答

0

你可以做到这一点很容易与DO-WHILE Loop。我会给出一个“D78”的开始,你应该可以完成剩下的事情。

sub formatCells() 

    Dim count as Integer 
    Range("D78").Activate 

    count = 0 
    Do While ActiveCell.Offset(count, 0).Value <> "" 
     If ActiveCell.Offset(count, 0).Value > 300 Then 
      'Do Stuff 
     End If 
     count = count + 1 
    Loop 
End Sub 
+0

谢谢,但至少在那种方法下,这对我不起作用。也许我想要的是VBA根本不可能的。我用我所需要的替换了你的“Do Stuff”,但是我希望它做的是保持默认填充,如果单元格的值更改为低于300的数字。 – Robby