我搜索并发现了一些类似的帖子
Look for values from sheet A in sheet B, and then do function in corresponding sheet B cell 和 For each Loop Will Not Work Search for Value On one Sheet and Change Value on another Sheet
虽然这些都解决了我的目标的某些方面,但他们并不是这样。 我有3张,sheet1 - 3,我想在列A和B上的sheet1 - 2中搜索和匹配,如果找到匹配或在B列中找不到匹配A列中的值,则复制到sheet3。
这是我到目前为止使用Office 2016的原因。
Public Sub SeekFindCopyTo()
Dim lastRow1 As Long
Dim lastRow2 As Long
Dim tempVal As String
lastRow1 = Sheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row
lastRow2 = Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Row
For sRow = 4 To lastRow1
Debug.Print ("sRow is " & sRow)
tempVal = Sheets("Sheet1").Cells(sRow, "B").Text
For tRow = 4 To lastRow2
Debug.Print ("tRow is " & tRow)
TestVal = Sheets("Sheet2").Cells(tRow, "B")
Operations = Sheets("Sheet2").Cells(tRow, "A")
If Sheets("SAP_XMATTERS").Cells(tRow, "B") = tempVal Then
Operations = Sheets("Sheet2").Cells(tRow, "A")
Debug.Print ("If = True tempVal is " & tempVal)
Debug.Print ("If = True TestVal is " & TestVal)
Debug.Print ("If = True Operaitons is " & Operations)
If Operations = "REMOVE" Then
Sheets("Sheet2").Range("A" & tRow).EntireRow.Copy
Sheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Insert xlcutcell
'Sheets("Sheet2").Rows(tRow).Delete
Else
'Sheets("Sheet2").Rows(tRow).Delete
End If
End If
Next tRow
Next sRow
End Sub
代码运作良好,但问题是我正在寻找表格1和2之间的B:B中的匹配如果匹配我想要检查A:A中的相邻单元格,如果它是REMOVE则返回字符串REMOVE将整行复制到sheet3。如果在B:B和Sheets 2& 2之间没有匹配,我也想知道这个问题。如果是,则在相邻单元格中使用字符串PROCESS 1,将整行复制到sheet3。我可以在单独的潜艇中做任何一个选项,但不能让它在一次通过中起作用。
即使按照“你不能这样做”的方式,你的帮助也会受到赞赏; - )
TIA
鲍勃答案 0 :(得分:0)
使用.Find进行完全重写就可以了。
std::map<t_ReaderID, shared_ptr<IReader>> DerivedFactory::GetReaders()
{
int numDevices = 0, numReaders = 0;
numDevices = Derived_DiscoverDevices(&devices);
numReaders = Derived_DiscoverReaders(devices, numDevices, &readers);
for (int i = 0; i < numReaders; ++i)
{
t_ReaderID ID = reinterpret_cast<char *>(readers[i]->id->id);
shared_ptr<DerivedReader> o_Reader(new DerivedReader(readers[i]));
m_readers.insert(std::make_pair (ID, o_Reader));
std::cout << ID << std::endl;
}
areReadersOpen = true;
return m_readers;
}