我有两张excel表。一个是估计值,一个是发票。我设置它们,以便我在估算中键入的任何内容也会填入发票中。有些词需要改为过去时。例如,在估算表格上,它会说“删除x”,在发票上它也会显示“删除x”。我想知道是否可以让发票自动更改“删除x”到“删除x”?我尝试使用我在网上找到的这两种解决方案:
Worksheets("sMain").Columns("D").Replace _
What:="Avenue", Replacement:="Ave.", _
SearchOrder:=xlByColumns, MatchCase:=True
和
ary = Array("Remove")
For Each wd In ary
Columns("AT").Replace What:=wd, Replacement:="Removed", SearchOrder:=xlByColumns, MatchCase:=True
Next
但是我收到编译错误:外部程序无效。任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
运行此宏将自动在列中查找和替换。
首先:我创建了一个样本数据列表。
this is a test to find and replace.
I want to visit Canada
Renee likes to go to Mexico
Mexico is south of the border
Have you ever been to united states of america?
Canada
Mexico
United States
Mexico
第二:我为我想要查找和替换的内容创建了一个包含2列的列表。
Find Replace
Canada CAN
Mexico MEX
United States USA
Mexico MEX
第三步:创建并运行宏。 Sub MultiFindNReplace() 昏暗的范围 Dim InputRng作为范围,ReplaceRng作为范围 设置InputRng = Application.Selection Set InputRng = Application.InputBox(" Original Range"," Search Range",InputRng.Address,Type:= 8) 设置ReplaceRng = Application.InputBox("替换范围:","查找和替换范围",类型:= 8) Application.ScreenUpdating = False 对于每个Rng在ReplaceRng.Columns(1).Cells InputRng.Replace what:= Rng.Value,replacement:= Rng.Offset(0,1).Value,Lookat:= xlPart 下一个 Application.ScreenUpdating = True 结束子
答案 1 :(得分:0)
让我们从一些基本代码开始;打开开发人员,选择Visual Basic,然后将此代码粘贴到ThisWorkbook中 如果您的发票工作表未命名为“发票”,请将其更改为反映您的工作表名称。
Sub Replace()
With ThisWorkbook.Worksheets("Invoice").Columns("AT")
.Replace What:="Remove", Replacement:="Removed", lookat:=xlPart, MatchCase:=False
End With
End Sub