【问题标题】:VBA Excel ForEach Worksheet LoopVBA Excel ForEach 工作表循环
【发布时间】:2017-01-22 01:07:19
【问题描述】:

第一次发帖,这里是初学者级别的 VBA 脚本编写者。我已经在 StackOverflow 上查看了相关问题,并且只是假设我的问题的答案,所以我要求澄清一下。以下 Excel VBA 脚本旨在删除 90 张工作簿顶部的所有空行。当我运行脚本时,它只会影响我打开的工作表。为什么它不会遍历所有表格?

Sub Macro1()

    Dim j As Long
    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets
        For j = 10 To 1 Step -1
            If Cells(j, 3) = "" Then
                Rows(j).Delete
            End If
        Next j
    Next

End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您需要告诉它在 If 语句和删除命令中查看所需的工作表:

    Sub Macro1()
    
    Dim j As Long
    Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Worksheets
        For j = 10 To 1 Step -1
            If ws.Cells(j, 3) = "" Then
                ws.Rows(j).Delete
            End If
        Next j
    Next
    
    End Sub
    

    【讨论】:

    • 工作。非常感谢。
    【解决方案2】:
    Sub Macro1()
    
    Dim j As Long
    Dim ws As Worksheet
    
    For Each ws In ThisWorkbook.Worksheets
    ws.Activate
        For j = 10 To 1 Step -1
            If ws.Cells(j, 3) = "" Then
                ws.Rows(j).Delete
            End If
        Next j
    Next
    
    End Sub
    

    【讨论】:

    • 这似乎回答了这个问题,但你应该真正指出你的代码做了什么,而不是仅仅发布它
    猜你喜欢
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    相关资源
    最近更新 更多