您是否可以编辑Excel单元格的内容而不必双击它?


28

我有一个大约10,000个名称/地址的列表,我必须在Excel中手动对其进行清理(有趣!)。可以想象,双击必须输入几乎每个单元格来进行编辑是一件麻烦事。令人沮丧的是,如果您甚至稍微靠近单元格的顶部/底部,您最终都将位于工作表的顶部/底部!

有没有一种方法可以告诉Excel保持在“编辑模式”,以便当我单击一个单元格(或者更好的是,向下滚动到它)时,它会自动允许我编辑内容?我不能只是开始输入,因为这样会覆盖整个单元格,而通常我只需要编辑1或2个字符。谢谢。


1
这是一个肮脏的解决方法,但是如何将其转换为CSV,用逗号分割以及使用记事本或您喜欢的任何其他文本编辑器进行编辑呢?
gronostaj

9
您确定没有脚本或函数可以为您执行此“清理”操作吗?遇到类似情况时,我从excel中获取了所有数据,并通过一个小的正则表达式脚本成功运行了它们。
摩西

19
绝对要看摩西所说的话。如果你正在做什么手动10,000次,那么你就错了。
Tanner Faulkner

@Moses-不幸的是没有。这些条目来自数据库,其中主要是“地址名称”字段,其中的数据非常不一致。有人说诸如“史密斯·约翰先生和史密斯·琼斯太太”之类的东西,应该是“史密斯先生和太太”,而其他人则是空白,等等。这基本上是一个非常大的项目的开始。
大卫·加德

1
@datatoo-名称必须是可辨认的,但必须易于辨认,以便可以在地址上使用它们。由于多年来将多个数据库合并为一个数据库(并且人们很懒惰),因此单元内的数据不一致。我没有参考单元,项目的这一部分完成后,我将把数据拆分为Salutation,Initials,Surname等。在这一点上,我可以开始使用自动化了。
大卫·加德

Answers:


20

您可以使用以下宏进行此操作。F2每次更改电子表格上的选择时,它都会使您的Excel表现得就像您命中一样。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    SendKeys "{F2}"
End Sub

点击Alt+调F11出VBA编辑器,展开左树视图,直到看到所需的工作表,双击该工作表,然后将上面的代码粘贴到其中。

您可以简单地通过'在代码行之前添加使其成为注释来禁用此功能:

'SendKeys "{F2}"

或者,我想将其完全删除。


如果您enter要移动单元格(我怀疑这是您的主要意图),这也很好用,因为它将立即开始编辑它们并让您更快地移动。


顺便说一句,感谢您提出这个问题,我将自己大量使用它,因为这对于许多数据操作来说是更好的方法!
enderland

完善!这正是我要编写此工作簿的内容,非常感谢。我注意到的唯一一点奇怪的是,如果我使用“ Shift + Tab”在单元格中从右向左移动,我每次都必须按下“ Shift”,而不是只能按住它。
大卫·加德

3
请注意,以这种方式使用VBA有其缺点。最值得注意的是,它将消除工作表上的任何“撤消”功能。因此,如果不小心搞砸了并删除了一些数据,最好有一个备份。同样,箭头键不再可用于导航工作表。
Excellll

3
@Excellll有一个很好的观点;您的撤消功能会丢失。对于这样一个简单的宏,似乎并不值得。考虑改用AutoHotKey-您可以告诉它在Enter,Shift-Enter,Tab或Shift-Tab之后按F2。(而且您可以确保它也只能在Excel中使用。)
benshepherd

19

您可以通过键盘上的F2键进入编辑模式,也可以创建一个带有弹出/提示的VB宏。严格来讲,我不知道要保持F2模式不变,但是您可以在Excel中编写一个小的脚本,该脚本向下一行并进入单元格(然后将该宏替换为“ return / tab”到新列) 。

编辑:另一种选择是通过具有更易于访问的用户界面的此类数据的不同程序来管理这些编辑。例如,将所有这些数据推送到Access之类的数据库程序中,然后通过其UI管理数据字段。

但是,所有这些都避免了主要问题,这就是为什么为什么有10,000行数据需要手动清理?如果编写单个脚本来统治所有脚本太麻烦了,为什么不将表格分成有意义的组并以这种方式处理呢?很难想象必须手动处理10,000个数据字段,并且没有解决方法。


1
感谢您的F2提示,它确实有帮助。我将使用该功能覆盖此电子表格的return / tab键。谢谢。
大卫·加德

@DavidGard没问题。我还用可能适合您的第三个替代方法更新了答案。
摩西

3
+1...why is there 10,000 rows of data that require manual cleaning?
Icode4food

7

我知道的唯一方法是按F2。每次都有效,直到您按Return/ Enter移出当前单元格为止。


2

可能的答案是一个名为“ Doubleclick的鼠标中键(或滚轮)的程序”,该程序在codeproject上可用,我不知道是否应该在此处发布链接,但是我敢肯定google可以成为您的朋友。它的作用是在它处于活动状态时,只需单击鼠标中键,它就会向您的计算机发送两次左键单击。


0

按下“ F2”可能是最好的选择,尽管它不会保留在编辑模式下。如果知道要执行的编辑,则查找/替换(Ctrl + F)也非常有用,可以节省大量时间。此外,您可以在此处找到200多种excel键盘快捷键的列表。


0

选择整个列,然后使用查找和替换。只需在查找和替换上都留一个空白,然后它就会更新-这样您就可以欺骗excel并可以正常工作


0

尝试= concatenate公式。将两个单元的信息结合在一起。然后,您可以复制和粘贴值。


0

检查单元格格式的参数...如果该单元格的保护选项卡上隐藏了一个复选标记,它不会为您提供编辑单元格文字的选项。应该取消选中该复选框,以便查看该框的内容并根据需要对其进行编辑。


这并不能真正回答问题。再增加一点代表,您就可以在评论中添加有用的信息。
fixer1234

0

这是最适合我的解决方案。

http://ccm.net/forum/affich-172180-unable-to-change-date-format-in-excel

  1. 首先,将格式更改为数据列所需的特定日期。
  2. 选择列后,选择“复制”
  3. 打开记事本(NOT WORD,必须是记事本)
  4. 将数据粘贴到记事本中。
  5. 在记事本中,按CTRL + A(选择所有单元格),然后按CTRL + C(复制数据)
  6. 将数据粘贴回Excel。
  7. 它会说一些关于大小不一样的东西,无论如何都要粘贴。

0

如果要编辑没有公式的单元格或只能在Excel中完成的操作,只需复制这些单元格并将其作为普通列或表格粘贴到Word文档中即可。在这些表中自由编辑数据,然后将其复制回Excel中的原始位置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.