gpt4 book ai didi

excel - 将子程序转换为函数

转载 作者:行者123 更新时间:2023-12-04 21:02:55 25 4
gpt4 key购买 nike

我有以下子例程,它在 A 列中采用预定义的字符串列表(称为我的大列表),并根据另一列中的字符串是否是我的大列表中的一个字符串的子字符串,它会替换它。如果没有匹配,它什么也不做(只是让字符串保持原样)。

Sub Find_Bad_Replace_Good()
Dim rng As Range, v As Long, vList As Variant
With Selection.Parent
vList = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value2
For Each rng In Selection
For v = LBound(vList, 1) To UBound(vList, 1)
If CBool(InStr(1, rng.Value2, vList(v, 1), vbTextCompare)) Then
rng = vList(v, 1)
Exit For
End If
Next v
Next rng
End With
End Sub

我想将它转换为一个接受字符串作为参数(来自单个单元格)的函数,而不是一个适用于整个字符串范围的宏。我希望你们中的一位专家可以帮助我。我想要这个,所以我可以有更多的控制权并且宏似乎卡住了。

最佳答案

我没有检查你的其余代码,因为我这里没有 Excel。但这是转换为函数的一般语法:

Function Find_Bad_Replace_Good(inputValue as String) As String

Dim v As Long, vList As Variant
With ActiveSheet
vList = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Value2
For v = LBound(vList, 1) To UBound(vList, 1)
If CBool(InStr(1, inputValue, vList(v, 1), vbTextCompare)) Then
Find_Bad_Replace_Good = vList(v, 1)
Exit For
End If
Next v
End With

End Function

查看您以前访问 rng.Value2 的位置我已切换到 inputValue ,这将是作为参数传递给函数的字符串。返回也是一个字符串,并且与函数同名。因此,您曾经将搜索结果分配给 rng ,现在我分配给 Find_Bad_Replace_Good ,这将是您函数的返回值。

我还更改了您的 withWith ActiveSheet ,因为你没有选择了。只需将其更改为您想要的范围即可。

关于excel - 将子程序转换为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32621065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com