Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 强制刷新";最后一句话;工作表的单元格_Excel_Vba - Fatal编程技术网

Excel 强制刷新";最后一句话;工作表的单元格

Excel 强制刷新";最后一句话;工作表的单元格,excel,vba,Excel,Vba,在Excel中按Ctrl+End可将您带到工作表最右下角的单元格 如果删除最后一行或最后一列并保存工作簿,则最后一个单元格以及滚动条都会更新 我记得有一个单行VBA命令,您可以运行它来进行更新,而无需保存工作簿,但我记不起该命令是什么-您有什么想法吗?以下是答案: Sub x() ActiveSheet.UsedRange End Sub 运行此命令,最后一个单元格将被重置。我发现一些方法可以持续删除这些空行。当您使用右侧的滚动条时,您可以知道excel使用的“使用范围”过大,并且将添

在Excel中按Ctrl+End可将您带到工作表最右下角的单元格

如果删除最后一行或最后一列并保存工作簿,则最后一个单元格以及滚动条都会更新

我记得有一个单行VBA命令,您可以运行它来进行更新,而无需保存工作簿,但我记不起该命令是什么-您有什么想法吗?

以下是答案:

Sub x()
    ActiveSheet.UsedRange
End Sub

运行此命令,最后一个单元格将被重置。

我发现一些方法可以持续删除这些空行。当您使用右侧的滚动条时,您可以知道excel使用的“使用范围”过大,并且将添加额外的空行,当您滚动到底部时,它将超出实际数据的最后一行。这将导致在将表导入SQL时向表中添加额外的空白记录

要摆脱它们:

  • 选择最后一行数据下的整个第一行。点击Ctrl + Shift +向下箭头键选择所有空白行。<李>
  • 从“主页”选项卡中选择“清除”,然后从“编辑”菜单中选择“全部清除”(灰白色橡皮擦的图片)
  • 单击鼠标右键并选择“删除”
  • 先转到A1单元格,然后保存
  • 按Ctrl+Home,然后按Ctrl+End(这将获得所用区域(空行上方)中正确的最后一个单元格)
  • 再次单击保存

  • 此解决方案适用于Excel 2013,但也可能适用于最新版本的Excel:

    • 选择要更改最后一个单元格的工作表,并删除所有未使用的行和列
    • 单击文件-选项-自定义功能区
    • 在主选项卡下,选中“开发人员”旁边的框,然后单击“确定”
    • 在现在显示的“开发人员”功能区上,单击Visual Basic
    • 在左上角的Microsoft Excel对象下,单击要强制刷新工作表最后一个单元格的工作表名称
    • 在菜单中,单击运行-刷新,然后关闭Visual Basic窗口
    按Ctrl+End键时,最后一个单元格现在应该会刷新。

    签出,从类似问题中找到链接

    远非被遗忘的一行,但确实为我解决了问题

    或者

  • 启用“手动计算”(以保留参照)

  • 创建新工作表

  • 复制旧工作表的单元格和名称


  • 这就是我所做的……因为以上这些都不起作用(这一次,很遗憾,因为这段代码运行得很好,然后突然
    xlCellTypeLastCell
    完全让我失望。)这只有在你硬编码你想要抓取的区域的第一个单元格和最后一个单元格的情况下才有效…例如,我正在将数据表粘贴到一张包含12-40列和60-90行的表格中…但由于它是粘贴,所以它总是从单元格A79开始

    Worksheets("Data_Import").Activate
    Range("A79").CurrentRegion.Select
    A = Selection.Rows.Count - 1
    B = Selection.Columns.Count - 1
    Selection.Offset(A, B).Resize(1, 1).Select
    Set DataEnd = Selection
    
    我为没有使用酷酷的特殊细胞感到难过,但是,唉,如果它不起作用,那么我就不能使用它了

    p、 你也可以加入一个

    ActiveSheet.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Select
    

    当上述工作都没有尝试这个

    选择未使用的行并更改行高度

    现在删除行并保存


    答对了!

    出于某种原因,仅凭代码
    ActiveSheet.UsedRange
    无法在Excel 2016 64位上强制Excel重置上次使用的单元格

    这确实对我有用。希望这对我有帮助

    Rows(25:415).Clear   'deletes contents and formatting
    ActiveSheet.UsedRange   'resets last used cell
    

    我不知道为什么每个人都把它弄得这么复杂。只需按Ctrl+PgDn。

    试试宏:
    ActiveSheet.UsedRange
    ,但它通常不起作用在Excel 2003中不起作用,或者Excel 2010在Excel 2013中不起作用——就算给了我一个带有隐藏函数和其他杂质的工作簿,所以可能会有冲突。在Excel 2003中不起作用Excel 2003或2010这正是不应该做的。保存文件的解决方法在原始帖子中有说明,问题是如何在不保存的情况下保存。@MichaelS。对不起,但对于普通用户来说,这是将活动单元格范围缩小到具有真实用户数据的单元格范围的最简单方法。我的用户和MS规定的唯一方法是将数据复制到另一个空白文件中,保存、删除原始文件并重命名。如果工作簿有N张工作表,则必须将N张工作表复制到另一个文件中,保存并重命名,因此此解决方案要好得多,但并不像规定的那样完美。此解决方案在Excel 2016中非常适合我(在运行ActiveSheet.UsedRange时)并尝试清除-->清除所有内容(全部失败)。谢谢!!!:)这就是为我修好的!!!我当时正使劲往墙上撞,想把它修好,这确实奏效了。非常感谢你!谢谢你,伙计,这是Excel bugs中的一个奇迹,但是你的解决方案成功了。请记住,你需要通过单击第一行,然后向下滚动并单击最后一行号来选择行(不仅仅是单元格)。谢谢。我调查了一下为什么会这样。在原始的Excel文件(在构成XLSX的XML中)所有的空白行(从第1000行到第100万行)中,每行都有CueSuth=“1”属性集。这将停止本页中描述的所有其他方法的工作。删除行会将其替换为设置了customHeight=“1”的新行,因此永远不会重置回维度。更改行高度将清除此选项。在元素(新行/列具有默认值)中,还设置了customHeight=“1”,因此新行遇到了相同的问题。绝对是微软的错误!!首先选择所需的最后一个单元格。