2016-07-24 123 views
0

我想清除特定范围内受保护工作表的未受保护内容。例如,当我运行VBA时,它将清除范围从A1002:F1301和G1002:AZ1301的内容。提到的范围是不受保护的。我只希望这些范围之间的单元清晰,但不是格式或任何其他更改。清除受保护工作表中未受保护特定范围的内容

+0

https://msdn.microsoft.com/en-us/library/office/ff835589.aspx –

回答

0

因为你的榜样范围(例如A1002:F1301和G1002:AZ1301)实际上并没有他们之间的任何未引用的列或行,我要你的榜样更改为A1002:F1301和H1002:AZ1301其叶子列G未涉及两个Areas在不连续的范围内。

使用类似于以下两种方法之一的方法。

with worksheets("Sheet1") 
    .range("A1002:F1301, H1002:AZ1301").clearcontents 
    'alternative with Union 
    union(.range("A1002:F1301"), .range("H1002:AZ1301")).clearcontents 
    'do NOT use the following - it includes all the cells in between 
    .range("A1002:F1301", "H1002:AZ1301").clearcontents 
end with 

第一种方法是对第二种方法Union method的简写。注意第一个和第三个之间的区别。第三个不推荐用于您的目的,因为它包含两个范围之间的所有单元格(例如A1002:AZ1301)。

Range.ClearContents method只会清除与Range.Clear不同的值,这会清除值和格式。