宏运行后不单击就无法编辑字段

时间:2019-09-09 18:03:00

标签: google-apps-script google-sheets google-apps

我有一本Google表格工作簿,其中有一些定义为脚本的宏,它们非常简单(添加行和格式化)。脚本的最后一行激活特定的单元格。我已将其中一个脚本链接到一个按钮。当我单击按钮时,宏将按预期运行,并且单元格将按预期突出显示,但是如果不双击该单元格就无法编辑该单元格。即使按“ enter”键也不允许在单元格中输入文本。

我浏览了开发人员参考资料,并尝试在Internet上进行搜索,但是似乎没有搜索字词可以准确地描述此问题。

这是我正在使用的函数,当宏完成后,我想编辑单元格B3:

<?php

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

  require 'db.inc.php';

  $email = $_POST['email'];
  $password = $_POST['password'];

  if (empty($email) || empty($password)) {
    header("Location: ../index.php?error=emptyfields&mailuid=".$email);
    exit();
  }
  else {

    $sql = "SELECT * FROM users WHERE name=? OR email=?;";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {

      header("Location: ../index.php?error=sqlerror");
      exit();
    }
    else {

      mysqli_stmt_bind_param($stmt, "ss", $email, $email);

      mysqli_stmt_execute($stmt);
      $result = mysqli_stmt_get_result($stmt);
      if ($row = mysqli_fetch_assoc($result)) {

        $hash = password_verify($password, $row['password']);
        if ($hash == false) {

          header("Location: ../index.php?error=wrongpwd");
          exit();
        }

        else if ($hash == true) {

          session_start();

          $_SESSION['id'] = $row['id'];
          $_SESSION['username'] = $row['name'];
          $_SESSION['email'] = $row['email'];

          header("Location: ../index.php?login=success");
          exit();
        }
      }
      else {
        header("Location: ../index.php?login=wrongpassoremail");
        exit();
      }
    }
  }

  mysqli_stmt_close($stmt);
  mysqli_close($conn);
}
else {

  header("Location: ../diajsdians.php");
  exit();
}

我希望能够在宏运行完成后立即开始在单元格中键入(或者,如有必要,请按“ enter”键,然后开始键入)

1 个答案:

答案 0 :(得分:0)

您的方法是将光标移动到指定单元格的正确方法之一。要在该单元格上书写,您可以按您所说的进行双击,但是有更快的方法:

  • 粘贴文本:只需按CTRL + V
  • 公式栏:单击一次,然后写入数据。

为清楚起见,在屏幕上方,编辑栏用ƒ?符号标记。如果它是隐藏的,则可以使其显示在View > Formula bar上。我们希望这对您有用。请不要犹豫,向我们提供更多信息以寻求进一步的帮助。

更新

单击按钮后,您无法直接写入单元格,因为单击按钮后选择了按钮,而忽略了函数本身的结果。

我在研究custom menus时遇到了此功能的解决方法。可以使用您的功能创建一个新菜单。并且该菜单被激活后,会将光标留在单元格中,可以按照您最初的要求进行写操作。

要获取该菜单,您需要在代码中添加以下功能:

function onOpen() {
  var userInterface = SpreadsheetApp.getUi();
  userInterface.createMenu("cawwot's menu").addItem('Insert', 'Insert').addToUi();
}

重新加载电子表格后,您将能够使用新菜单。