Использование VLookup в VBA

Я чувствую твою боль. Вы можете изучать программирование из книги, но когда дело доходит до работы с Eclipse или Visual Studio, его кошмар a ^ & amp; ^ & amp; n сделать что-то простое, например добавить библиотеку. Все ждут, что вы будете знать, как им пользоваться, и если вы этого не сделаете, вы можете опросить свой вопрос. Проблема в том, что если вы не работаете в офисе или не знаете кого-либо, кто может задавать эти вопросы, то почти невозможно понять это. Во всяком случае ...

У меня была твоя проблема, и именно так я ее исправил. Следующие шаги являются рабочим способом для добавления библиотеки. Я сделал первые два шага вправо, но я не сделал последнего, перетащив файл «.jar» прямо из файловой системы в папку «lib» моего проекта eclipse. Кроме того, мне пришлось удалить предыдущую версию библиотеки как из пути сборки, так и из папки «lib».

Если кто-нибудь знает более подходящий способ добавить / обновить библиотеку, пожалуйста, перезвоните.

Шаг 1 - Добавить .jar для построения пути

enter image description here [/g4]

Шаг 2 - Связанные источники и javadocs (необязательно)

enter image description here [/g5]

Шаг 3 - На самом деле перетащите файл .jar в папку «lib» (необязательно)

enter image description here [/g6]

0
задан SJR 17 January 2019 в 16:54
поделиться

1 ответ

Удобочитаемость

OP, ваш код может быть реструктурирован, как показано ниже. Я также использовал некоторые переменные сокращения, чтобы сделать вещи проще. Ваши имена переменных в идеале должны быть краткими (легко читаемыми и короткими для ввода). Читаемость имеет большое значение для устранения неполадок.

Дайте мне знать, как только вы увидите это, чтобы я мог удалить

Sub PNum()

Dim ws47 As Worksheet: Set ws47 = ThisWorkbook.Sheets("IW47")
Dim ws38 As Worksheet: Set ws38 = ThisWorkbook.Sheets("IW38")

Dim Arr As Range: Set Arr = ws38.Range("A:K")

Dim LR As Long, MyCell As Range, Priority As String

LR = ws47.Range("E" & ws47.Rows.Count).End(xlUp).Row

For Each MyCell In ws47.Range("R2:R" & LR)
    If IsEmpty(MyCell.Offset(-13)) Then Exit Sub

    On Error Resume Next
        Priority = WorksheetFunction.VLookup(MyCell.Offset(, -13), Arr, 11, 0)

        If Err = 0 Then
            MyCell = Priority
        Else
            Err.Clear
        End If
    On Error GoTo 0

Next MyCell

End Sub
0
ответ дан urdearboy 17 January 2019 в 16:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: