如题:1、下列( A BC D )属于水果。A、苹果 B、香蕉 C、桔子 D、荔枝 E、黄瓜利用通配符变为下列形式如题:1、下列(ABCD)属于水果。A、苹果 B、香蕉 C、桔子 D、荔枝 E、黄瓜2、。。。。。。3、。。。。。。要求,用通配符,只替换()中的空格,答案里的空格不可以替换。
这个建议使用两步替换法。
具体替换过程如下:
文档示例如下图:
步骤1、打开查找替换,点击查找,点击更多,勾选使用通配符
步骤2、查找(*),点击在以下项中查找-主文档
步骤3、我们可以看到文档中所有的题干中的括号中的内容都已经选中
步骤4、关闭查找替换窗格,然后重新打开查找替换窗格。
选择替换
查找:空格(敲一个空格)
替换:空(什么也不写)
点击全部替换
步骤5、然后我们发现所有括号中的空格都已经被删除了
追问答案里的空格也全都没有了……。
追答第3步结束后,要关闭查找替换窗格。第4步再重新打开查找替换窗格。过程中,保证文字处于选中状态。具体看下面的动图。
嗯 ,一步一步操作是可以的,但录制成宏后,就一下子把答案中的也KO了。。。。。
追答操作既然可以,那还有什么问题?录制宏的话,自然是不行的,因为不能录制查找选定的这一过程,用vba的话,你要先设定替换空格的范围range,这个范围是查找到的(*)。不过没必要啊,就一步的事,手动不费事吧,甚至你可以先查找(*)主文档,然后再查找空格-在所选内容查找,然后删除,变成2步。
追问大神,VBA可以的话,请给个代码,谢谢!我处理的东西多。
追答Sub 删括号内容中间的空格()
Selection.HomeKey Unit:=wdStory
With Selection.Find
For i = 1 To 1000
i = i + 1
.ClearFormatting
.Execute findtext:="(*)", Format:=True, Forward:=True
If .Found = True Then
.Parent.Find.Execute findtext:=" ", ReplaceWith:="", _
Replace:=wdReplaceAll
End If
Next i
End With
End Sub
试了,不行哦。还有吗?
追答没问题的,有动图为证:
谢谢你的思路。分三步走:
1、([A-Z])^32@([A-Z])替换为\1\2,执行两次。
2、"(^32@([A-Z])"替换为"(\1"
3、"([A-Z])^32@)"替换为 "\1)"
以下为宏内容:
With Selection.Find
.Text = "([A-Z])^32@([A-Z])"
.Replacement.Text = "\1\2"
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.Execute Replace:=wdReplaceAll
。。。。。。
还有一个思路:
打开查找对话框,勾选“使用通配符”,查找栏填:([A-Z^32]@)
点开“在以下项中查找”,点选“主文档”,此时目标范围被选中。接着将查找栏内容改为:^32{1,}
点开“在以下项中查找”,点选“当前所选内容”,此时最终目标被选中,关闭查找对话框,在键盘上按“Delete”,完工
是的,另一个思路也非常棒,高效,可惜用宏录制不下来,只能工人操作。我想弄成宏,一劳永逸,VB会,但VBA没玩过,所以只能用笨办法了。
本回答被提问者采纳