String 在不同工作表的两列中匹配字符串并复制它

String 在不同工作表的两列中匹配字符串并复制它,string,vba,excel,match,String,Vba,Excel,Match,我是VBA新手,所以需要帮助。。。请帮助我 我在B栏第1页有数据,类似于-123alina09032015& 我在第2页的A列中有数据,就像这样-alina 数据量巨大,每个月都在不断增加。所以我想要的是一个VBA代码来匹配第2页a列和第1页b列中的单词,并将其粘贴到第1页c列中的相邻单元格中 我有一个代码,但它只找到精确的匹配,并将其粘贴到第1页的c列。代码如下: Sub CopyBasedonSheet1() Dim i As Long Dim j As Long Sheet1LastRo

我是VBA新手,所以需要帮助。。。请帮助我

我在B栏第1页有数据,类似于-123alina09032015& 我在第2页的A列中有数据,就像这样-alina

数据量巨大,每个月都在不断增加。所以我想要的是一个VBA代码来匹配第2页a列和第1页b列中的单词,并将其粘贴到第1页c列中的相邻单元格中

我有一个代码,但它只找到精确的匹配,并将其粘贴到第1页的c列。代码如下:

Sub CopyBasedonSheet1()

Dim i As Long
Dim j As Long
Sheet1LastRow = Worksheets("sheet1").Range("B" & Rows.Count).End(xlUp).Row
Sheet2LastRow = Worksheets("sheet2").Range("A" & Rows.Count).End(xlUp).Row


For j = 1 To Sheet1LastRow
    For i = 1 To Sheet2LastRow
        If Worksheets("sheet1").Cells(j, 1).Value = Worksheets("sheet2").Cells(i, 4).Value Then
            Worksheets("sheet1").Cells(j, 3).Value = Worksheets("sheet2").Cells(i, 1).Value
        Else
        End If
    Next i
Next j
End Sub

期待您的回答

工作表函数
=Find(“abc”,“123abc456”)
将在“123abcdef”字符串中返回“abc”的起始位置,在这种情况下为4。如果第二个字符串不包含第一个字符串,则返回#Value错误。这可以通过
=ISER(A1)
功能进行检查。如果你是在床单上做的话

要在代码中执行类似操作,
=InStr(.cells(a,b),.cells(c,d))
将返回相同的4,如果在输入的第一个单元格中找到第二个单元格中的值(因此与工作表Find函数的参数顺序相反)。但是,如果一个字符串未在另一个字符串中找到,VBA函数不会生成错误,而是生成零结果


听起来OP关心的是一个字符串包含另一个字符串,但不关心另一个字符串在字符串中的确切位置。因此,与其测试单元格是否相等,不如检查
InStr(工作表().cell(),工作表().cell())>0
。如果为true,则在另一个值中找到一个值,您可以执行
然后…
,就像所写的那样。

您只需要第一个匹配吗?你目前的日常工作是不断地寻找一些东西。后续匹配是否应堆叠到相邻列中?您能否编辑您的描述,使您使用的列与代码中的列匹配(或编辑代码)?使用InStr()如何?是的,我使用了InStr(),它解决了我的问题。。谢谢大家。