【问题标题】:VBA For Loop Only Altering One SheetVBA For 循环只改变一张纸
【发布时间】:2018-02-14 11:53:58
【问题描述】:

我正在尝试仅针对特定命名的工作表更改一系列单元格中的值。

我正在编辑的工作簿大约有 95 张,我只想更改带有期间实际信息的工作表(命名为 P1W1、P1W2 等,直到 P12W5)。

当我执行下面的操作时,它只会改变第一张纸,然后退出宏。

非常感谢任何帮助

    Option Explicit

Public Sub periodclear()

Dim ws As Worksheet
Dim r As Range

On Error Resume Next

Set r = Range("c10:i30")

For Each ws In Worksheets
    If ws.Name Like ("P#W#") Or ws.Name Like ("P##W#") Then

       r.Value = ""

    End If

Next ws

End Sub

【问题讨论】:

    标签: vba excel for-loop


    【解决方案1】:

    试试这个。您的 r 仅在一张纸上定义,因此需要放入循环中。

    Public Sub periodclear()
    
    Dim ws As Worksheet
    
    For Each ws In Worksheets
        If ws.Name Like ("P#W#") Or ws.Name Like ("P##W#") Then
            ws.Range("c10:i30").ClearContents
        End If
    Next ws
    
    End Sub
    

    【讨论】:

    • CallumDA - 它们确实有效,# 是数字的通配符,它​​和 ?当我尝试 Debug.print ws.name 时返回结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    相关资源
    最近更新 更多