强制刷新工作表的“最后”单元格

时间:2010-01-21 05:06:10

标签: excel vba

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

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

我记得有一个单线VBA命令可以运行,无需保存工作簿即可进行更新,但我不记得命令是什么 - 你有什么想法吗?

8 个答案:

答案 0 :(得分:17)

以下是答案:

Sub x()
    ActiveSheet.UsedRange
End Sub

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

答案 1 :(得分:14)

我发现了一些可以删除那些空白行的东西。您可以判断excel使用的“已使用范围”是否太大,并且当您使用右侧的滚动条时将添加额外的空白行,当您滚动到底部时,它会超出最后一行实际数据。这将导致在将表导入SQL时将额外的空白记录添加到表中。

要摆脱它们:

  1. 选择最后一行数据下的整个第一行。按 Ctrl + Shift + 向下箭头以选择所有空白行。
  2. 从“主页”选项卡中选择“清除”,然后从“编辑”菜单中选择“全部清除”(白灰色橡皮擦的图片)。
  3. 右键单击并选择“删除”。
  4. 首先转到单元格A1然后保存。
  5. Ctrl + Home 然后 Ctrl + 结束(这应该会带您正确的最后一个单元格使用的范围(空行以上)。
  6. 再次点击保存。

答案 2 :(得分:4)

以上方法均无效时,请尝试此操作。

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

现在删除行并保存。

宾果!

答案 3 :(得分:1)

这就是我所做的......因为上面的 none 工作(这次是,这很令人伤心,因为这段代码运行得很漂亮然后突然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

我觉得难过不使用酷特殊细胞的事情,但很可惜,如果它不能正常工作!那我就是不能用它。 :C

P.S。 - 你也可以投入

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

答案 4 :(得分:0)

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

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

当您按Ctrl + End时,现在应该刷新您的最后一个单元格。

答案 5 :(得分:0)

结帐http://dmcritchie.mvps.org/excel/lastcell.htm#MakeLastCell,找到类似问题的链接。

远离被遗忘的一个班轮,但确实解决了我的问题。

可替换地;

  1. 启用手动计算(以保留参考资料)。

  2. 创建新工作表。

  3. 复制单元格和旧表格的名称。

答案 6 :(得分:0)

由于某种原因,单独的代码Rows(25:415).Clear 'deletes contents and formatting ActiveSheet.UsedRange 'resets last used cell 在64位Excel 2016上对我不起作用,迫使Excel重置上次使用的单元格。

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

<?php

      $db = mysqli_connect("localhost", "root", "", "test");


      $msg = "";


      if (isset($_POST['upload'])) {


        $file = $_FILES['file']['name'];

        $file_text = mysqli_real_escape_string($db, $_POST['file_text']);
        $nome = mysqli_real_escape_string($db, $_REQUEST['nome']);
        $identificador = mysqli_real_escape_string($db, $_REQUEST['identificador']);
        $email = mysqli_real_escape_string($db, $_REQUEST['email']);


        $target = "images/".basename($file);

        $sql = "INSERT INTO testes (nome, identificador, email, file) VALUES ('$nome', '$identificador', '$email', '$file')";

        mysqli_query($db, $sql);

        if (move_uploaded_file($_FILES['file']['tmp_name'], $target)) {
            $msg = "file uploaded successfully";
        }else{
            $msg = "Failed to upload file";
        }
      }
      $result = mysqli_query($db, "SELECT * FROM testes");
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>file Upload</title>

    </head>
    <body>
    <div id="content">
      <?php
        while ($row = mysqli_fetch_array($result)) {
          echo "<div id='img_div'>";
            echo "<img src='images/".$row['file']."' >";
            echo "<p>".$row['file_text']."</p>";
          echo "</div>";
        }
      ?>
      <form method="POST" action="send.php" enctype="multipart/form-data">
        <input type="hidden" name="size" value="1000000">
        <div>
          <input type="file" name="file">
        </div>

        <p>
        <label for="nome">Nome:</label>
        <input type="text" name="nome" id="nome">
            </p>
            <p>
        <label for="email">Email:</label>
        <input type="text" name="email" id="email">
            </p>
        <p>
        <label for="identificador">Identificador:</label>
        <input type="text" name="identificador" id="identificador">
        </p>    


        <div>
            <button type="submit" name="upload">POST</button>
        </div>
      </form>
    </div>
    </body>
    </html>

答案 7 :(得分:-2)

我不确定为什么每个人都这么复杂。只需按Ctrl + PgDn。