gpt4 book ai didi

vba - 如何在不主动选择每个工作表的情况下在多个工作表中运行一个方法

转载 作者:行者123 更新时间:2023-12-04 21:37:44 30 4
gpt4 key购买 nike

我无法在 VBA 中编写一些代码,该代码将为事件工作簿中的所有工作表运行宏,而无需每次“手动”选择工作表,然后再次运行该方法。我目前拥有的如下:

sub NhlStatsHighlighter()

Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets

With ws


For Each cell In ActiveSheet.UsedRange.Cells

If IsNumeric(cell) And Not IsEmpty(cell) Then
If cell.Value < 0 Then
cell.Interior.Color = rgbRed

ElseIf cell.Value = 0 Then
cell.Interior.Color = rgbGray

ElseIf cell.Value > 0 Then
cell.Interior.Color = rgbLightBlue

End If
End If
Next
End With
Next ws

这仅适用于第一个(事件)工作表。我不太确定我做错了什么。我尝试了其他方法,但遇到了同样的问题。

最佳答案

您正在构建 With ws / End With但不为 UsedRange 的父级利用它.

sub NhlStatsHighlighter()
Dim ws As Worksheet, rng as range
For Each ws In ActiveWorkbook.Worksheets
With ws
For Each rng In .UsedRange.Cells
If IsNumeric(rng) And Not IsEmpty(rng) Then
If rng.Value < 0 Then
rng.Interior.Color = rgbRed
ElseIf rng.Value = 0 Then
rng.Interior.Color = rgbGray
ElseIf rng.Value > 0 Then
rng.Interior.Color = rgbLightBlue
End If
End If
Next
End With
Next ws
end sub

注意 .UsedRange.Cells .前缀句点(又名 . 或句号)使父 ws 在您通过外部循环时发生变化。

关于vba - 如何在不主动选择每个工作表的情况下在多个工作表中运行一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30407089/

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