Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何编写搜索列的函数_Excel_Vba - Fatal编程技术网

Excel 如何编写搜索列的函数

Excel 如何编写搜索列的函数,excel,vba,Excel,Vba,我正在尝试编写一个脚本,用存储的单词列表搜索固定列(假设其范围为a:a),我想检查特定字符串(函数的输入)是否是该固定列表中任何单词的子字符串。如果是,我想用列表中的单词替换它,如果不是,我不想做任何事情,即保留原始单词。这可能是使用选择的好时机,而不是避免它 Sub Find_Bad_Replace_Good() Dim rng As Range, v As Long, vList As Variant With Selection.Parent vList =

我正在尝试编写一个脚本,用存储的单词列表搜索固定列(假设其范围为a: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

选择一个或多个单元格并运行宏。替换词列表应位于从A1开始的同一工作表的A列。

显示您正在尝试的内容。函数搜索(ByVal s作为字符串)如果InStr(s,A:A)>0,则。。。结束函数编辑您的问题并在那里添加代码。@Bond的建议很好。你需要向我们展示你所做的尝试,以及帮助我们是如何出错的。StackOverflow提供了一些关于如何最好地显示kaputt代码的优秀指南。这是一个很好的例子,这是一个很好的例子。试着编辑你的问题,告诉我们你做了什么,哪里出了问题,SO社区会互相帮助。如果我知道怎么做,我就不会问了……我只是把我做的都贴出来了