Excel VBA范围计算

时间:2015-08-18 02:06:27

标签: excel vba excel-vba excel-2010

我正致力于创建每月整合功能,但我并不喜欢我使用此代码片段的方式:

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

所有客户资料均通过模板填写,该模板为每个新个体自行复制,因此资料均为标准化。所有用户配置文件都是&lt; = 5个字符(首字母缩写词)。所以我的代码的意图是检查选项卡是否为&lt; = 5个字符,然后如果是 - 选择第一个范围B7:C7并清除它。接下来,我们将此清除的过滤器应用于所有其他单元格(低至100)。

我已经将ws定义为我的工作表变量,但我不明白为什么我不能将ws.range设置为B7:C7。我很感激你的洞察力!

我附上了表单内容的快照。Snapshot of tool

1 个答案:

答案 0 :(得分:5)

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

注意:

  • .Select语句要求激活ws
  • 您不需要使用。在这种情况下选择(您可以直接对该范围采取行动)
  • .AutoFill不错,但这里不需要

    • 其有用性是在递增初始数据时