将行范围分配给变量

时间:2019-03-12 21:39:12

标签: excel vba

我一直很努力。我不知道这个。我正在处理两张纸。一张纸会搜索标准“ RR”,因为有一个RR,它会为变量分配要在另一张纸中搜索的序列。如果在另一张纸上找到该序列号,我想确定它所在的行并将其分配给一个变量。 “ DidTransfer = Sheets(PreviousTabName).Range(” B“&thiscell.Row).Value”当我使用thiscell.Row时出现问题,它给了我很多问题。我需要行号,以便我可以引用同一行以从同一行中的另一个单元格获取信息。请帮忙。

Sub TempModifier()

Dim NYSID, PLookUpTabRange, IsRR, DidTransfer As String

Dim thiscell As Range

'Variable for Temp
Dim TempFirstRow As Integer
Dim TempLastRow As Long

'Variables for the previous
Dim PreviousTabLastRow As Long
Dim PreviousTabFirstRow As Integer

'Initialize the temp variables
TempLastRow = Sheets("Temp").Range("D" & Rows.Count).End(xlUp).Row

PreviousTabName = "February"
PreviousTabFirstRow = 7

With Sheets(PreviousTabName)
        PreviousTabLastRow = .Cells(256, "H").End(xlUp).Row 'Get the last row in the data range
End With

'Create a data-range variable
PLookUpTabRange = "H" & PreviousTabFirstRow & ":" & "H" & PreviousTabLastRow

'Begin looping structure to copy data from the temp tab to the current tab



For TempFirstRow = 2 To TempLastRow

    'Assign the value of the housing unit
    IsRR = Sheets("Temp").Cells(TempFirstRow, 2).Value

    'Check if the value is RR
    If IsRR = "RR        " Then
        'If the value is RR, then get the NYSID
        NYSID = Worksheets("Temp").Cells(TempFirstRow, 4).Value

        If Not IsError(Application.Match(NYSID, Worksheets(PreviousTabName).Range(PLookUpTabRange), 0)) Then

        'NYSID is Found on Current Month Sheet, do Nothing

        Else

            DidTransfer = ""
            Set thiscell = Sheets(PreviousTabName).Columns("D").Find(What:=NYSID, LookIn:=xlValues, lookat:=xlWhole)

                DidTransfer = Sheets(PreviousTabName).Range("B" & thiscell.Row).Value

                    Select Case DidTransfer

                        Case "Transferred"
                            DidTransfer = "Transferred"
                        Case Else
                            DidTransfer = DidTransfer

                    End Select

            If IsError(Application.Match(NYSID, Worksheets(PreviousTabName).Range(PLookUpTabRange), 0)) Or _
            (Not IsError(Application.Match(NYSID, Worksheets(PreviousTabName).Range(PLookUpTabRange), 0)) And _
                 DidTransfer = "Transferred") Then

                    'Worksheets("Temp").Rows(TempFirstRow).Delete
                    MsgBox "Delete"

            End If

        End If

    End If



'Go to the next row
Next TempFirstRow



End Sub

0 个答案:

没有答案