Excel VBA – 查找范围内的值并将相邻单元存储在variables中

我有代码,现在可以采取一系列的值,并find最高值,次高等值,并将其作为variables粘贴到不同的工作簿。

我现在要做的是find与特定值相邻的string(在本例中为名称),并将该string粘贴到其他工作簿中。

我知道我需要做什么,但我没有得到正确的。

注释行之间的部分是问题出在哪里,因为所有其他的部分都是独立运作的。

Dim sipRng As Range: Set sipRng = [G1] Dim rng As Range: Set rng = [C4:C16] Dim firstVal As Double, secondVal As Double, thirdVal As Double, fourthVal As Double, cel As Range Dim var As Variant, iSheet As Integer, iRow As Long, iRowL As Long For Each cel In sipRng If InStr(cel.Value, "Inbound AHT") > 0 Or InStr(cel.Value, "Valid Quality Count") > 0 Or InStr(cel.Value, "Valid Quality %") > 0 Then firstVal = Application.Small(rng, 1) secondVal = Application.Small(rng, 2) thirdVal = Application.Small(rng, 3) fourthVal = Application.Small(rng, 4) ElseIf InStr(cel.Value, "Outbound Calls Made") > 0 Or InStr(cel.Value, "FCR %") > 0 Or InStr(cel.Value, "FLR %") > 0 Or InStr(cel.Value, "Corrected CSAT Average") > 0 Then firstVal = Application.Large(rng, 1) secondVal = Application.Large(rng, 2) thirdVal = Application.Large(rng, 3) fourthVal = Application.Large(rng, 4) End If Next cel ''''''''''''''''' iRowL = Cells(Rows.Count, 2).End(xlUp).Row For iRow = 1 To iRowL If Not IsEmpty(Cells(iRow, 1)) Then For iSheet = ActiveSheet.Index + 1 To Worksheets.Count var = Application.Match(Cells(iRow, 2).Value, Worksheets(iSheet).Columns(2), 0) Debug.Print var Next iSheet End If Next iRow '''''''''''''' nngr2.Activate Range("B4") = firstVal Range("B11") = secondVal Range("B9") = thirdVal Range("B6") = fourthVal 

这是我开始

在这里输入图像说明

这是目标,而不是价值观,我想要的名字(在这种情况下,字母)

在这里输入图像说明

这是一个起点,它用值加载一个二维数组,并将这些值粘贴到活动工作表的E4中:

 Sub Macro1() Dim rng As Range Dim arr(1 To 4, 1 To 2) Set rng = [C4:C16] For i = 1 To 4 arr(i, 2) = Application.WorksheetFunction.Large(rng, i) arr(i, 1) = rng.Cells(Application.WorksheetFunction.Match(arr(i, 2), rng, 0)).Offset(, -1).Value Next i nngr2.Range("B4").value = arr(1,1) nngr2.Range("B11").value = arr(2,1) nngr2.Range("B9").value = arr(3,1) nngr2.Range("B6").value = arr(4,1) End Sub 

在这里输入图像说明