Excel VBA范围计算

我正在创build一个月度合并函数,它不喜欢我如何使用我的代码的这个特定代码片段:

For Each ws In Worksheets If Len(ws.Name) <= 5 Then ws.Range("B7:C7").Select Selection.ClearContents Selection.AutoFill Destination:=Range("B7:C100"), Type:=xlFillDefault Range("B7:C100").Select End If Next 

所有的客户资料都是通过一个模板填写的,每个新的个人资料都是自我复制的,因此所有资料都是标准化的。 所有用户configuration文件<= 5个字符(首字母缩写词)。 所以我的代码的目的是检查标签是否是<= 5个字符,然后如果是 – select第一个范围B7:C7并清除它。 接下来,我们将这个清除的filter应用到所有其他单元格(低至100)。

我已经定义了ws作为我的工作表variables,我不明白为什么我不能将ws.range设置为B7:C7。 我会很感激你的见解!

我附上了表单的外观快照。 工具快照

 For Each ws In Worksheets If Len(ws.Name) <= 5 Then ws.Range("B7:C100").ClearContents Next 

笔记:

  • .Select语句要求ws被激活
  • 您不需要使用。在这种情况下select(您可以直接在范围上操作)
  • .AutoFill不坏,但这里不需要

    • 它的用处是增加初始数据