vba - Excel VBA 范围计算

标签 vba excel 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

所有客户资料均通过模板填写,该模板会为每个新个人进行 self 复制,因此资料都是标准化的。所有用户配置文件均小于等于 5 个字符(首字母缩略词)。所以我的代码的目的是检查制表符是否 <= 5 个字符,然后如果是 - 选择第一个范围 B7:C7 并清除它。接下来,我们还将这个清除的过滤器应用到所有其他单元格(减少到 100 个)。

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

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

最佳答案

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/

相关文章:

vba - 使用VBA计算事件工作表(excel)左侧未隐藏(可见)工作表的数量?

vba - 使用单元格方法在 VBA 中创建图表 - 应用程序或对象定义的错误

java - 打开用 Java 创建的 Excel 电子表格时出现输入/输出错误

excel - 按日期从一个工作表复制粘贴到另一个工作表

excel - 更新 VSTO Excel 加载项

excel - 有没有一个excel公式可以将负数四舍五入?即轮(-2.5) = -2

Excel 公式简单除以 2 个单元格,使用 =+

excel - Worksheet_Change事件中的VBA错误处理程序

vba - 如何删除字符?

excel - 循环不更新 range.row 或 range.column