String 如何使用VBA检查特定列中的所有行是否包含Excel中的特定字符串?

String 如何使用VBA检查特定列中的所有行是否包含Excel中的特定字符串?,string,excel,vba,String,Excel,Vba,我在不同的表格中有两列数据。我们可以称它们为A和B。B比A有更多的数据行,而且数据也不一样。具体来说,在每个数据字段中,都有一些额外的文本从A附加到B的末尾或开头。我试图找出B中包含A中每一行的所有可能行。有多种方法。这取决于你想做什么 将行循环 Dim ws As Excel.Worksheet Dim lRow As Long Set ws = ActiveWorkbook.Sheets("Sheet1") ws.Activate lRow = 1 'Loop through and

我在不同的表格中有两列数据。我们可以称它们为A和B。B比A有更多的数据行,而且数据也不一样。具体来说,在每个数据字段中,都有一些额外的文本从A附加到B的末尾或开头。我试图找出B中包含A中每一行的所有可能行。有多种方法。这取决于你想做什么

将行循环

Dim ws As Excel.Worksheet
Dim lRow As Long

Set ws = ActiveWorkbook.Sheets("Sheet1")
ws.Activate

lRow = 1

'Loop through and record what is in the first column
Do While lRow <= ws.UsedRange.Rows.count

    If ws.Range("A" & lRow).Value = "SomeValue" Then
        'Do something here
    End if

    lRow = lRow + 1
    ws.Range("A" & lRow).Activate
Loop
Dim ws As Excel.工作表
暗淡的光线和长的一样
设置ws=ActiveWorkbook.Sheets(“Sheet1”)
ws.Activate
lRow=1
'循环并记录第一列中的内容

当lRow你的问题可以从进一步的澄清中受益时,就去做吧。例如,一些示例数据

我想你在说什么:

A包含例如

"test1"
"test2" 
"test3"
"Test1-BData"
"Bdata2-Test3"
"Bdata3-Test1"
B包含例如

"test1"
"test2" 
"test3"
"Test1-BData"
"Bdata2-Test3"
"Bdata3-Test1"
在这种情况下。您需要定义A中字符串的长度

dim lngColumnAStringLength as long
    lngColumnAStringLength = 5

dim strTest as string
for I = '/start column B to '/ End column B
      strTest = left(columnBcell, X)
      strTest = right(columnBcell, X)
'/ Returns the first (or last) X characters of the string

      bMatchFound = false
      for j = '/ startcolumn A to end column A
           if strTest = (columnAcell.text) then bMAtchFound = true
      next j

if BMatchFound = true then '/ Copy to a 3rd list, hide row, whatever

next i
或者,如果您的数据总是附加分隔符,例如“-”或“.”或类似的内容。你可以用

split(columnBtext, "-")
如果B=“abc def ghij”
返回包含(“abc”、“def”、“ghij”)的数组

例如A列测试A测试b测试案例1案例2 b列测试A测试A 123重新测试am 123案例2案例1 xyz案例235我的预期:A列b测试A测试A 123重新测试am测试b案例1案例1 xyz案例2 123案例2案例235 A列和B在两张不同的纸上。