excel - 触发 Cells.Select 属性时停止工作表跳转到页面顶部

标签 excel vba module properties

这是默认 本工作手册 代码:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    FixWidthHeight
End Sub
这是我的固定宽度高度 模块:
Sub FixWidthHeight()
    Cells.Select
    Selection.Columns.AutoFit
    Selection.Rows.AutoFit
    Application.Goto ActiveCell.EntireRow, True
End Sub
我希望我的代码按照这个特定的顺序做什么:
  • 细胞。选择 - 选择整个工作表中的所有单元格
  • Selection.Columns.AutoFit - 自动调整所有列宽
  • Selection.Rows.AutoFit - 自动调整所有行高
  • Application.Goto ActiveCell.EntireRow, True - 将最后更新的行滚动到工作表的顶部

  • 我对这段代码的问题是它不会触发最后一个属性 Application.Goto ActiveCell.EntireRow, True 因为 细胞。选择 属性阻止它发射。我测试了代码,发现细胞。选择 成为罪魁祸首。当细胞。选择 属性被触发,它会自动跳转到 工作表顶部的第一行 而不是 最后一个事件/更新的行 .好像细胞。选择 取消 Application.Goto ActiveCell.EntireRow, True 这不是我想要的。所以我想知道是否有人可以帮助我修复此代码以获得指定的我想要的结果。谢谢

    最佳答案

    您可以调用AutoFitUsedRange.ColumnsUsedRange.Rowsavoid Select ing首先。

    With ActiveSheet.UsedRange
        .Columns.AutoFit
        .Rows.AutoFit
    End With
    
    然后 ActiveCell保持不变,Application.Goto ActiveCell.EntireRow, True将按需要工作。

    关于excel - 触发 Cells.Select 属性时停止工作表跳转到页面顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68294370/

    相关文章:

    excel - 使用 Excel VBA 禁止在给定文件夹中保存

    vba - VBA 中是否有相当于 Python 的 pass 语句?

    vba - 无法在我的抓取工具中设置超时选项以防止无限循环

    excel - 打开工作簿时运行宏

    python - 自定义模块 - 对象没有属性

    vba - 在excel中添加不同数量的点

    java - Java 数组的迭代器

    vba - 尝试将一个工作表从一个工作簿复制到另一个预先存在的工作表中?

    search - ElasticSearch Play-1.2 模块在客户端模式下不起作用

    node.js - 如何为替换 "exports"对象的模块创建 Typescript (1.8) 类型定义?