我正在创建一个每月合并函数,它不喜欢我使用这个特定代码片段的方式:
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
所有客户资料均通过模板填写,该模板会为每个新个人进行 self 复制,因此资料都是标准化的。所有用户配置文件均小于等于 5 个字符(首字母缩略词)。所以我的代码的目的是检查制表符是否 <= 5 个字符,然后如果是 - 选择第一个范围 B7:C7 并清除它。接下来,我们还将这个清除的过滤器应用到所有其他单元格(减少到 100 个)。
我已将 ws 定义为我的工作表变量,但我不明白为什么不能将 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 还不错,但这里不需要
- 它的用处是在增加初始数据时
关于vba - Excel VBA 范围计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32062433/