Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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
Vba 基于列表自动替换文本_Vba_Excel - Fatal编程技术网

Vba 基于列表自动替换文本

Vba 基于列表自动替换文本,vba,excel,Vba,Excel,有没有办法让Excel中的电子表格根据单独工作表上的列表自动更新文本 那么,假设每次我将内容复制到Sheet1,并希望它自动将单词Apple、Orange和Banana更新为Sheet2列表中相应的单词,那么最好的方法是什么 我有一个分支代码的广泛列表,这些代码被分配给它们的分支名称,但是从我们的系统中提取的数据只提供分支代码。这就是为什么我试图找到一种方法在默认情况下更新它 在下面的示例中,我希望将Sheet1中的列分支中的内容自动替换为另一个工作表中我的列表提供的内容,这是下面的第二个图像

有没有办法让Excel中的电子表格根据单独工作表上的列表自动更新文本

那么,假设每次我将内容复制到Sheet1,并希望它自动将单词Apple、Orange和Banana更新为Sheet2列表中相应的单词,那么最好的方法是什么

我有一个分支代码的广泛列表,这些代码被分配给它们的分支名称,但是从我们的系统中提取的数据只提供分支代码。这就是为什么我试图找到一种方法在默认情况下更新它

在下面的示例中,我希望将Sheet1中的列分支中的内容自动替换为另一个工作表中我的列表提供的内容,这是下面的第二个图像

第1页内容:

和第2页,以及列表:


谢谢你的帮助

在花了更多的时间寻找帮助后,我遇到了以下代码:

Sub UpdateBranchNames()
    Dim r As Range
    With Sheets("Sheet2")
        For Each r In .Range("A1:A500", .Range("a" & Rows.Count).End(xlUp))
            Sheets("Sheet1").Columns(8).Replace r.Value, r(, 2).Value
        Next
    End With
End Sub
谢谢你的回复

更新:

这是一个更新版本,感谢@QHarr

Sub UpdateBranchNames()
    Dim r As Range
    Dim myRange as Range
    Dim myList as Worksheet
    Set myList = Sheets("Sheet2")
    Set myRange = myList.Range("A1:A500", myList.Range("a" & Rows.Count).End(xlUp))

    With myList
        For Each r In myRange
            Sheets("Sheet1").Columns(8).Replace r.Value, r(, 2).Value
        Next
    End With
End Sub 

是的,这是绝对可以做到的。您已经尝试过什么?请包括一些样本数据(之前和之后),这些数据至少与您的实际数据非常匹配(如果它不是机密/敏感的,那么发布实际数据)@TimWilliams当然。等一下。我将添加两个屏幕截图。@ChrisMelville我不太确定如何处理这个问题。我知道如何在单个单元格中输入公式以替换文本,但不知道如何创建搜索整个工作表并根据列表自动替换内容的内容。如果您专门要求VBA解决方案,而没有发布任何自己的尝试,然后这里的人通常倾向于向下投票/投票关闭。将此.Range(“A1:A500”、.Range(“a”&Rows.Count).End(xlUp))放入变量,例如Dim myRange As Range。设置MyLange=纸张(SHIET2)。Range(A1:A500),范围(“A”和行。计数)。(XLUP)也考虑将表(“SeET2”)放入变量。这会更有效率。@QHarr谢谢你的帮助!我已经把你的建议加在上面的答案上了。