Excel替换查找和替换中的-1字符

时间:2014-12-11 14:10:29

标签: python regex excel python-2.7

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

我要问的原因是尝试用'变量文本Facade Repairs'替换'变量文本FaçadeVal修订'而不实际输入非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()

1 个答案:

答案 0 :(得分:0)

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

如果你想要改变的字符串在A1中,这就可以了:

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

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