【问题标题】:Insert text in front of each Excel cell在每个 Excel 单元格前面插入文本
【发布时间】:2014-05-14 22:56:04
【问题描述】:

我有一个 Excel 2010 工作表,其中有一列数字,例如

-1.5629E+00
-1.5745E+00
-1.4344E+00
-1.6456E+00

这些是 log10 值,我想要原始值:

0.027359
0.026638
0.036776
0.022614

当然,我可以插入一个已完成正确操作的列,但这会扰乱工作表的后续使用。我宁愿想办法插入这段文字

=10^

在原始列中每个单元格的开头。我尝试录制一个宏,但该功能只是录制在单元格中添加一个全新的条目,而不是在开头插入文本。

【问题讨论】:

  • 手工,你的意思是?我宁愿不;)
  • 啊,我明白了。是的,这会奏效,而且不会太繁琐。但我可能更喜欢 VBA 代码(带有我建议的更正),因为从长远来看它会更容易。遗憾的是 MS 没有在 Excel 中提供更强大的搜索/替换功能。

标签: excel text replace excel-2010


【解决方案1】:

我想你可能误解了上面@pnuts 的评论。 VBA 在这里似乎有点矫枉过正。假设您的值列是A。在B 列中,使用公式

=10^A1

然后向下应用。最后,复制该列并将特殊值粘贴到列A 上,然后删除列B

【讨论】:

    【解决方案2】:

    选择您的 log10 值并运行:

    Sub AntiLog()
        Dim c as Range
        For Each c in Selection.Cells
            If IsNumeric(c.value) then c.Value=10^c.Value
        Next c
    End Sub
    

    【讨论】:

    • 不挑剔。我更正了它并删除了大于零的测试,但在“同行评审”之前它不会显示我的编辑。
    • 也许您可以解释一下这如何帮助解决 OP 的问题?
    • @LaughDonor - OP 有一列 log10 值,他们希望将其转换为等效的反对数。除非我完全误读了这个问题,否则它将在任何选定的单元格上执行该操作。你不同意吗?
    • 不,但您刚刚发布了代码。如果没有一些评论,未来的访问者可能会发现很难理解。 :) 现在已修复。
    【解决方案3】:

    这是我最终得出的结论:

    Sub AntiLog()
    Dim c As Range
    For Each c In Selection.Cells
        If IsNumeric(c.Value) And Not IsEmpty(c.Value) Then c.Value = 10 ^ c.Value
    Next c
    End Sub
    

    与所需的任何键关联。然后,单击整个列范围,点击您的键,工作就完成了。最初的工作更多,但现在修复这些列只需几秒钟的时间。感谢所有回复的人,尤其是。蒂姆·威廉姆斯;你的代码给了我足够的能力来完成最后的工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多