VLOOKUP и ищите разные в одном листе - PullRequest
0 голосов
/ 26 апреля 2019

[Изменено] Мне очень жаль, я не очень четко описал это Мой вопрос о функции VLookup: Я использовал код как:

    B5'n$CX$"

с намерением позволить VBA перейти на лист B5, а также определить, какие «n» (либо n25, n35 и т. д.), оно должно идти в.

Это не сработало, поэтому я здесь, чтобы найти, могу ли я получить какое-либо предложение.

Ниже оригинальное сообщение:

Я очень новичок в VBA, только начал один или два раза, касаясь этого. Я изменил код, как показано ниже, и моя цель состоит в том, чтобы VBA находит значения для «DI» & i, в зависимости от значений «DE» & i в электронной таблице B5, но в B5 число «n», которое зависит от значения "CX" & i, и когда VBA отправляется на поиск значений "DE" & i, сначала нужно определить значение n с помощью значений «CX» и я. Снимок экрана рабочей таблицы B5 выглядит следующим образом:

https://www.dropbox.com/s/do6i7zeylaz0sch/B5.jpg?dl=0

Мой код, как показано ниже:

во-первых, если «DE» & i> 3.9, я бы хотел, чтобы VBA установил «DI» & i = 0, еще с функцией vlookup. Большое спасибо за любую помощь и совет. Оценил.

    Sub FindPl()
    For i = 2 To 1730
    If .Cells("DE" & i).Value > 3.9 Then .Cells("DI" & i).Value = 0
    Else: .Cells("DI" & i).Value = 
    Application.WorksheetFunction.VLookup($DE$" & 
    i&",'[C:\Users\chenj5\Documents\Meeting_Jan_2019\simulation of Z1.9 for 
    Ultra Multi-Focal\Meeting 0220\Dataset used for simulation]B5'n$CX$" & 
    i&", 2, True)
    End If
    Next cell
    Next i
    End Sub

1 Ответ

0 голосов
/ 26 апреля 2019

Возьму удар на некотором примере кода ... Я догадался о ваших исходных данных и исправил некоторые синтаксические ошибки ... потратил некоторое время на обновление и соответствующее измерение.Слишком много всего происходит / неправильно с вашим размещенным кодом, чтобы предоставить что-то более ясное.

Sub FindPl()
    dim i as long, wb as workbook, OUTPUTRANGE as range, SEARCHRANGE as range
    set wb = "C:\Users\chenj5\Documents\Meeting_Jan_2019\simulation of Z1.9 for Ultra Multi-Focal\Meeting 0220\Dataset used for simulation.xlsx" 'added xlsx extension
    with wb
        set OUTPUTRANGE = .range(.cells(5,"D"),.cells(100,"D")) 'guessed... the range with the desired output
        set SEARCHRANGE = .range(.cells(5,"B"),.cells(100,"B")) 'guessed... the range where you will find .cells(i,"DE")
    end with
    with activeworkbook.sheets(1) 'FIX THIS TO FIT YOUR NEEDS
        For i = 2 To 1730
            If .Cells(i, "DE").Value > 3.9 Then 'FIXED SYNTAX ERROR
                .Cells(i, "DI").Value = 0
            Else: 
                .Cells(i, "DI").Value = Application.Index(OUTPUTRANGE, Application.Match(.cells(i, "DE").value,SEARCHRANGE, 0)) 
            End If
        Next   
    end with
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...