Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Arrays 根据Excel中的字符串数组查找字符串数组中的字符串_Arrays_String_Excel_Vba_Vlookup - Fatal编程技术网

Arrays 根据Excel中的字符串数组查找字符串数组中的字符串

Arrays 根据Excel中的字符串数组查找字符串数组中的字符串,arrays,string,excel,vba,vlookup,Arrays,String,Excel,Vba,Vlookup,我的工作簿中有两张Excel表格 我有一张参考表。我需要找到单元格中是否存在某个字符串(有一个句子),然后在引用表中查找该字符串的值并将其写入 这就是我要做的:(Sheet 1是操作表;Sheet 2是参考表。) 我想比较第2页A列中的任何字符串是否与第1页A列中的字符串(句子或字符串数组)匹配。然后,如果它们匹配,则应在第1页第B列生成第2页第2列中字符串对应的值 你能指导我怎么写这个宏吗 更新: 下面是函数 它有两个参数:第一个是要搜索的单元格(表1,A1),第二个是组成参考表的列(表2,A

我的工作簿中有两张Excel表格

我有一张参考表。我需要找到单元格中是否存在某个字符串(有一个句子),然后在引用表中查找该字符串的值并将其写入

这就是我要做的:(
Sheet 1
是操作表;
Sheet 2
是参考表。)

我想比较
第2页A列
中的任何字符串是否与
第1页A列
中的字符串(句子或字符串数组)匹配。然后,如果它们匹配,则应在
第1页第B列生成
第2页第2列
中字符串对应的值

你能指导我怎么写这个宏吗

更新:

下面是函数

它有两个参数:第一个是要搜索的单元格(表1,A1),第二个是组成参考表的列(表2,A:B)。它将使用表2A中的所有术语,并将它们组成一个变量数组词汇表,A列为键,B列为值。如果它在单元格中找到一个字符串,它将把它放入一个名为result的新字符串中。作为个人选择,我将glossay设置为静态,以便在您同时在多个单元格上运行此函数时运行得更快,但如果您愿意,可以将其更改为Dim

对于A1,您可以写:

=FindString(A1,Sheet2!A:B)
这是代码,请尝试一下,我希望它有帮助,或者至少给你一个好的开始

函数FindString(ByVal文本作为字符串_
ByVal术语(列为范围)作为字符串
将结果变暗为字符串
我想我会坚持多久
作为变体的静态词汇表
词汇表=范围(术语表。单元格(1,1)。结束(xlDown),术语表。单元格(1,2))
对于i=1到UBound(词汇表)
如果InStr(文本,词汇表(i,1))为0,则
结果=(词汇表(i,1)和“=”&(词汇表(i,2)和vbLf)和结果
如果结束
下一个
如果Len(结果)为0,则
结果=左$(结果,(Len(结果)-1))
如果结束
FindString=结果
端函数

(1)是的,返回到第1页第2列的值也是一个字符串。(2)是的,第2页第2列中的值对于第1页第2列中的字符串所在的句子是必需的(3)我希望它们用一个附加列或一个逗号分开。请注意,在上面的代码中,我将术语表的范围设置为A列中最后一个填充了内容的单元格。这是为了避免引用表中的空单元格出现错误(在这种情况下,将始终作为匹配返回)。我需要将结果写入工作表1第2列。我认为您在这里所做的是使用结果更新工作表1第1列。您能告诉我如何编辑吗?我尝试运行该函数。它给了我一个#名称吗?在B2中,当我尝试运行FindString(A2,Sheet2!A:B)时,您将在第1页第2列中编写此公式。函数将返回您想要的结果。至于它给你的错误,这只是一个开始,所以它有一些感觉。如表2所示,表中的值必须从A1开始。是吗?此外,请确保将其放入文件,保存,然后重新打开以确保宏处于活动状态。
=FindString(A1,Sheet2!A:B)