簡體   English   中英

Excel VBA-查找范圍內的值並將相鄰的單元格存儲在變量中

[英]Excel VBA - Find values in a range and store adjacent cell in variable

我擁有的代碼現在可以采用一定范圍的值,並找到最大值,下一個最大值等等,然后將它們作為變量粘貼到其他工作簿中。

我現在想做的是找到與特定值相鄰的字符串(在這種情況下,名稱),然后將該字符串粘貼到其他工作簿中。

我知道我需要使用它來做,但是我做錯了。

注釋行之間的部分是問題所在的地方,其他所有內容都可以獨立運行。

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

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM