如何使用 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 中执行此操作完全取决于您要查找的内容。我不明白你的问题到底是什么。