0

我想使用宏创建简单的工具,如果它匹配,则必须在 D 列中找到“R”文本,然后复制该单元格值并粘贴到“L”列中。

如果为下面的脚本运行宏,我可以获得确切的值,但它一直是一个单元格。所以任何人都可以帮助我找到整​​个 D 列。

D                  L

1111_r             1111_r
0000
22222
348_16re
111
222
333_16re
Dim c As Range
    With ActiveWorkbook.Sheets("PLMSync_NetChange")
        Set c = .Range("D1:D20").Find(What:="_R", _
                                   LookIn:=xlFormulas, LookAt:=xlPart, _
                                   SearchOrder:=xlByRows, _
                                   SearchDirection:=xlNext, MatchCase:=True)
        On Error GoTo NotFoundErr:
            c.Offset(0, 15).Value = c.Value
    End With
    Exit Sub
NotFoundErr:
    Debug.Print "value not found"
End Sub

非常感谢。它现在正在工作......在此过程之后必须将 L 列的值与限制范围内的 A cloumn 进行比较。想要从 L 列中取出 _values 并从项目 iD 单元格下方到 bom 更新单元格上方找到 A 列(有限制)。如果匹配,则复制并粘贴到 M 列中。

在这里,我附上了清楚显示的示例..

   A       B       C       D    L           M
BOM Update report for car               
Summary: Additions=14;Removals=10;Changes=3;Same=20             
Add         Remove  Remove
Item Id Revision    ProFeatureID    Item Id 
xxxxxx  0   795 3S2093_L    
xxxxxx  0   802 3S2093_L    
xxxxxx  0   790 3S2093_L    
yyyyyy  0   720 3S2093_L    
yyyyyy  0   817 3S2093_L    
yyyyyy  0   740 3S2093_L    
zzzzzz  0   732 11111_re    11111_re   11111
zzzzzz  0   746 11111_re    11111_re   11111
zzzzzz  0   758 11111_re    11111_re   11111
zzzzzz  0   766 11111_re    11111_re   11111
11111   2   774     
11111   2   777     
11111   2   780     
11111   2   783     
BOM Update report for bike  
4

3 回答 3

0
Dim LvRow As Integer

Dim LvCol As Integer

lastrow = Range("D65354").End(xlUp).Row

LvCol = 4

For LvRow = 1 To lastrow

  If InStr(1, Cells(LvRow, LvCol), "R",vbtextcompare) > 0 Then

      Cells(LvRow, LvCol).Select

      Cells(LvRow, LvCol + 8).Value = Cells(LvRow, LvCol)


 End If

Next
于 2013-03-01T05:21:52.897 回答
0
Sub sample()

    Dim lastRow As Long
    Dim rng As Range

    With Sheets("PLMSync_NetChange")
        .Activate
        lastRow = .Range("D65000").End(xlUp).Row

        For i = 1 To lastRow
            If (InStr(1, .Range("D" & i).Value, "r", vbTextCompare) > 0) Then
                .Range("L" & i).Value = .Range("D" & i).Value
            End If

        Next

    End With

    Exit Sub

NotFoundErr:
    Debug.Print "value not found"
End Sub
于 2013-03-01T05:24:07.517 回答
0

将 lvrow 调暗为整数

lastrow = Range("A65354").End(xlUp).Row

For lvrow = 1 到 lastrow

如果 (InStr(1, Cells(lvrow, 12), "1") > 0) 那么

If CStr(Mid(Cells(lvrow, 12), 1, InStr(1, Cells(lvrow, 12), "_") - 1) )=CStr(Cells(lvrow, 1)) Then
    Cells(lvrow, 13) = Cells(lvrow, 1)
    Cells(lvrow, 14) = "Match Found"
End If

万一

下一个

如果您想将其他列值粘贴到 col M 中,请更改列号。

于 2013-03-01T06:53:14.670 回答