vba - Excel VBA - 遍历电子表格并执行另一个循环

标签 vba excel

我可能只是做错了什么。

我正在尝试遍历工作簿中的每个工作表,并且在每个工作表上我希望它执行另一个循环。问题是我没有移动到下一个工作表,只在事件的工作表上工作。
任何帮助,将不胜感激。

Sub Hours()     
    Dim ws As Worksheet
    Dim I As Integer

        For Each ws In ActiveWorkbook.Worksheets
            For I = 6 To 21

                k = I + 1

                If Cells(k, 7).Value = "" Then

                ElseIf Cells(I, 8).Value <> Cells(k, 7) Then
                     Cells(I, 8).Font.Color = vbRed
                     Cells(k, 7).Font.Color = vbRed
                End If
            Next I
    Next ws     
End Sub

最佳答案

试试下面的代码,使用 With ws获取所有对象的语句,如Cells符合当前 Worksheet你正在循环。

代码

Sub Hours()

Dim ws As Worksheet
Dim i As Long, k As Long

For Each ws In ActiveWorkbook.Worksheets
    With ws
        For i = 6 To 21
            'k = i + 1 ' not needed, just change k to i + 1
            ' merge 2 Ifs to one using an And
            If .Cells(i + 1, 7).Value <> "" And .Cells(i, 8).Value <> .Cells(i + 1, 7) Then
                 .Cells(i, 8).Font.Color = vbRed
                 .Cells(i + 1, 7).Font.Color = vbRed
            End If
        Next i
    End With
Next ws

End Sub

关于vba - Excel VBA - 遍历电子表格并执行另一个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44804342/

相关文章:

vba - 当链接的单元格更改值时运行宏(Excel VBA)

html - 抓取html源vba

c# - 如何通过对话框选择文件夹并处理其中包含的所有文件

Excel 在日期之间的范围内选择随机值

VBA:DateAdd 和 EoMonth 在循环中间停止正常工作

excel - 数据透视表显示值,而不是值的总和

excel - 按为每个项目查找的属性对项目进行计数

excel - 添加对 "No help available"Excel、VBA、用户定义函数的帮助

excel - 如何使用VBA选择带有Range的整个Excel工作表?

vba - 如果选中行中的复选框,则 Excel VBA 代码更改为一列添加 1 年