VBA For Loop仅改变一张纸

时间:2018-02-14 11:53:58

标签: excel vba excel-vba for-loop

我试图仅为特定命名的工作表更改一系列单元格中的值。

我正在编辑的工作簿大约有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

1 个答案:

答案 0 :(得分:3)

试试这个。您的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