我有一本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”键,然后开始键入)
答案 0 :(得分:0)
您的方法是将光标移动到指定单元格的正确方法之一。要在该单元格上书写,您可以按您所说的进行双击,但是有更快的方法:
CTRL + V
。为清楚起见,在屏幕上方,编辑栏用ƒ?符号标记。如果它是隐藏的,则可以使其显示在View > Formula bar
上。我们希望这对您有用。请不要犹豫,向我们提供更多信息以寻求进一步的帮助。
更新
单击按钮后,您无法直接写入单元格,因为单击按钮后选择了按钮,而忽略了函数本身的结果。
我在研究custom menus时遇到了此功能的解决方法。可以使用您的功能创建一个新菜单。并且该菜单被激活后,会将光标留在单元格中,可以按照您最初的要求进行写操作。
要获取该菜单,您需要在代码中添加以下功能:
function onOpen() {
var userInterface = SpreadsheetApp.getUi();
userInterface.createMenu("cawwot's menu").addItem('Insert', 'Insert').addToUi();
}
重新加载电子表格后,您将能够使用新菜单。