使用范围(Cells()Cells())。样式导致应用程序定义或用户定义的错误

当然,如果满足某些标准,我正试图devise一系列的单元格。 我能够成功地将一种风格应用于一个单元格,但是迄今为止还没有成功应用于一个范围。 以下是我所知道的作品:

ElseIf OneA / OneC > 0.8 And OneA / OneC <= 1 Then ActiveWorkbook.Sheets(StartYear & " " & StartQ & " - " & EndYear & " " & EndQ).Cells(Employee, StartCol).Style = "60% - Accent2" 

上面的代码将单元格(Employee,StartCol)设置为60% – Accent2。 但是,当我更改此代码以尝试将样式应用于范围时,我得到“应用程序定义或用户定义的错误”。 以下是我试图将代码更改为:

 ElseIf OneA / OneC > 0.8 And OneA / OneC <= 1 Then ActiveWorkbook.Sheets(StartYear & " " & StartQ & " - " & EndYear & " " & EndQ).Range(Cells(Employee, StartCol), Cells(Employee + 49, StartCol)).Style = "60% - Accent2" 

我不确定我在这里做错了什么。 我认为这可能是一个语法错误,但我没有足够的经验足以知道究竟哪里出了问题。 任何帮助将不胜感激。 谢谢!

您在第二个片段中使用了Cells全局对象,但是在第一个片段中显式引用了工作表的.Cells属性。 第二个实际工作,但只有当活动工作表匹配你从ActiveWorkbook.Sheets()获得的工作表。 获取对目标工作表的引用,然后使用 .Cells属性而不是全局:

 ElseIf OneA / OneC > 0.8 And OneA / OneC <= 1 Then Dim target As Worksheet Set target = ActiveWorkbook.Sheets(StartYear & " " & StartQ & " - " & EndYear & " " & EndQ) With target .Range(.Cells(Employee, StartCol), .Cells(Employee + 49, StartCol)).Style = "60% - Accent2" End With