我正在使用此宏-在Sub格式下可以正常工作
Sub replaceStringInCells()
Dim wTxt As String
Dim rTxt As String
Dim rNum As Integer
rNum = 0
For Each Row In Range("swapvalues").Rows '<== change the wordlist Name here as required
wTxt = Row.Cells(1).Value
rTxt = Row.Cells(2).Value
Selection.Replace What:=wTxt, Replacement:=rTxt, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
rNum = rNum + 1
Next
End Sub
我试图将其更改为函数-通过将Sub更改为Function,更新Function名称,并添加字符串参数:
Function replaceaccents(thestring As String)
Dim wTxt As String
Dim rTxt As String
Dim rNum As Integer
rNum = 0
For Each Row In Range("swapvalues").Rows '<== change the wordlist Name here as required
wTxt = Row.Cells(1).Value
rTxt = Row.Cells(2).Value
Selection.Replace What:=wTxt, Replacement:=rTxt, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
rNum = rNum + 1
Next
replaceaccents = thestring
End Function
但是,这只是输出原始单元格。
有什么办法可以使它作为功能工作?
谢谢!
答案 0 :(得分:1)
之所以会这样,是因为该函数恰好返回了输入值。您想要输入“ thestring”做什么?
一个函数返回一个值,它不是设计为充当过程的,所以它只会更改调用它的单元格。
如果要替换重音符号(如函数名称所建议的那样),则应将对范围的引用作为参数(将字符串命名为Range),然后迭代字符串的字母以将á替换为,ü和u等。这是函数的更常见用法。然后,在电子表格中,您可以将其用作常规功能,只需引用要从中删除重音的单元格即可。
希望这对您有帮助。