gpt4 book ai didi

vba - 使用 Range(Cells() Cells()).Style 导致应用程序定义或用户定义错误

转载 作者:行者123 更新时间:2023-12-04 22:03:02 36 4
gpt4 key购买 nike

目前,如果满足某些条件,我正在尝试设置一系列单元格的样式。我能够成功地将样式应用于一个单元格,但迄今为止未能成功地将其应用于一个范围。这是我所知道的有效方法:

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"

我不确定我在这里做错了什么。我认为这可能是语法错误,但我对 vba 的经验不足,无法知道它到底哪里出错了。任何帮助将不胜感激。谢谢!

最佳答案

您正在使用 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

关于vba - 使用 Range(Cells() Cells()).Style 导致应用程序定义或用户定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31014517/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com