如何使用 Win32com 查找和替换。我的代码不会执行替换
How to use Win32com to Find and Replace. My code wont execute Replace
新 Python--
我的代码在移动 Sheet 后不会执行查找和替换。
目标是在第 1 本书的公式中引入新的 sheet 公式,然后查找并替换参考。这将使公式在第二本书中生效。
这是我目前所拥有的。它returns"No Values were found",但他们在那里。
正确方向的任何一点都会有所帮助!
各种功能
from win32com.client import Dispatch
path1 = (r'C:Full Path\Book1.xlsx')
path2 = (r'C:\Full Path\Book2.xlsx')
xl = Dispatch("Excel.Application")
xl.Visible = True
wb1 = xl.Workbooks.Open(Filename=path1)
wb2 = xl.Workbooks.Open(Filename=path2)
ws1 = wb1.Worksheets(1)
ws2 = wb2.Worksheets(1)
ws1.Copy(Before=wb2.Worksheets(1))
wb1.Close(SaveChanges=True)
#Cant get this part to work
ws2.Cells.Replace('C:Full Path\[Book1.xlsx]','')
Replace.Execute(ReplaceAll=1, Forward=True)
wb2.Close(SaveChanges=True)
xl.Quit()
我认为问题是让 excel 知道在哪里执行查找和替换。
查找和替换在 VBA 中耦合。不要被 Python 愚弄了。这是一个 VBA 问题,而不是 python 问题!一旦涉及到win32com,就不得不使用VBA方法和一些语法。
替换不能单独工作,首先,您需要用要替换的查找标记一个范围。
通常会这样
[object].Range.Find
.[Text or Feature to find]
.Replace.[what to replace with]
.Replace.Execute
如何在 python 中执行此操作完全取决于您要查找的内容。我不明白你的问题到底是什么。
新 Python--
我的代码在移动 Sheet 后不会执行查找和替换。
目标是在第 1 本书的公式中引入新的 sheet 公式,然后查找并替换参考。这将使公式在第二本书中生效。
这是我目前所拥有的。它returns"No Values were found",但他们在那里。
正确方向的任何一点都会有所帮助!
各种功能
from win32com.client import Dispatch
path1 = (r'C:Full Path\Book1.xlsx')
path2 = (r'C:\Full Path\Book2.xlsx')
xl = Dispatch("Excel.Application")
xl.Visible = True
wb1 = xl.Workbooks.Open(Filename=path1)
wb2 = xl.Workbooks.Open(Filename=path2)
ws1 = wb1.Worksheets(1)
ws2 = wb2.Worksheets(1)
ws1.Copy(Before=wb2.Worksheets(1))
wb1.Close(SaveChanges=True)
#Cant get this part to work
ws2.Cells.Replace('C:Full Path\[Book1.xlsx]','')
Replace.Execute(ReplaceAll=1, Forward=True)
wb2.Close(SaveChanges=True)
xl.Quit()
我认为问题是让 excel 知道在哪里执行查找和替换。
查找和替换在 VBA 中耦合。不要被 Python 愚弄了。这是一个 VBA 问题,而不是 python 问题!一旦涉及到win32com,就不得不使用VBA方法和一些语法。 替换不能单独工作,首先,您需要用要替换的查找标记一个范围。
通常会这样
[object].Range.Find
.[Text or Feature to find]
.Replace.[what to replace with]
.Replace.Execute
如何在 python 中执行此操作完全取决于您要查找的内容。我不明白你的问题到底是什么。