【问题标题】:Excel replace the -1 character in Find and ReplaceExcel替换查找和替换中的-1字符
【发布时间】:2014-12-11 14:10:28
【问题描述】:

是否可以在 Excel 中找到一个字符串,然后替换所有找到的字符和紧接在前面的字符?

我要问的原因是尝试将“可变文本外观修复”替换为“可变文本外观修复”,而无需实际输入非 ASCII 'ç'。我已经尝试了 SUBSTITUTE(text, old_text, new_text) 函数,它不允许我在 old_text 字段中使用通配符来获取 ç 以及查找和替换函数,它允许我在搜索中使用通配符,然后替换整个字符串,而不仅仅是 'Facade'。

我想避免使用 ç 因为这是在 python 模块中编写的,并且每当我去其他地方导入该模块时都会导致问题。 (我也已经尝试在 python 脚本中声明编码,#coding=utf-8,并且正在考虑尝试在 Excel 中解决这个问题,甚至在它到达 python 之前)。

感谢您的任何意见!

回答:感谢 selllikesybok,我能够将列的所有值替换为没有 ç 的临时列,然后将值从那里复制/粘贴回原始列。

# -- substitutes non ascii c --
# populates Z column with ascii chars
for i in range(lastRow):
    excel.Cells(i+1, 26).Value = '=SUBSTITUTE(D'+str(i+1)+', CHAR(231), "c")'
# copies z 
excel.Range('Z1:Z'+str(lastRow)).Select()
excel.Selection.Copy()
# pastes values to d
excel.Range('D1:D'+str(lastRow)).Select()
excel.Selection.PasteSpecial(Paste=-4163)   # -4163 = Paste Values
# clears z
excel.Range('Z1:Z'+str(lastRow)).Select()
excel.Selection.Clear()
# resets view to top
excel.Range('A2').Select()
excel.Selection.Clear()

【问题讨论】:

  • 你的python版本是什么?
  • 我将 Python 2.7 和 win32com 用于 Excel 命令

标签: python regex excel python-2.7


【解决方案1】:

对于 Excel 解决方案,您正在寻找 CHAR() 函数:

如果您要更改的字符串位于 A1 中,则可以解决问题:

=SUBSTITUTE(A1,CHAR(231),"c")

我比 Python 更了解 Excel,但您可能会在您的 Python 代码中做类似的事情(参考代码点而不是字符,以避免在 .py 文件中写入实际的非 ascii 字符)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    相关资源
    最近更新 更多