Excel VBA范围计算

Iro*_*rby 3 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
Run Code Online (Sandbox Code Playgroud)

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

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

我附上了表格的快照.工具快照

pau*_*ica 5

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

笔记:

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

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