【发布时间】:2019-02-06 09:52:52
【问题描述】:
我想在 Visual Studio 2008 中使用宏进行自动字符串替换。我已经使用记录器创建了宏(参见下面的代码),但它不起作用(尽管在交互模式下替换工作正常)。
我希望将替换应用于当前文档中的当前选择。我很惊讶地看到文件的名称 (Text.txt) 显式出现,因此宏可能无法在另一个文件上运行,但它在那个文件上无论如何都不起作用。
这里是宏源码:
Sub Multiline()
DTE.ExecuteCommand("Edit.Replace")
DTE.Windows.Item("Text.txt").Activate()
DTE.Find.FindWhat = "$"
DTE.Find.ReplaceWith = "\n\n"
DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocumentSelection
DTE.Find.MatchCase = True
DTE.Find.MatchWholeWord = False
DTE.Find.MatchInHiddenText = True
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
If (DTE.Find.Execute() = vsFindResult.vsFindResultNotFound) Then
Throw New System.Exception("vsFindResultNotFound")
End If
End Sub
供参考,对应的替换对话框:
有什么提示吗?为什么会失败?
【问题讨论】:
标签: visual-studio replace macros