VBA中的代码excel删除和替换

时间:2018-03-24 01:16:23

标签: excel vba excel-vba

我有两张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

但是我收到编译错误:外部程序无效。任何帮助将不胜感激。谢谢。

2 个答案:

答案 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