Использование переменной для вызова другого рабочего листа

Я пытаюсь использовать значение ячейки (отдел и навыки из списка значений), чтобы переключиться на правильный лист отдела и применить фильтр, используя переменные навыков vS1 - vS4. Используя запись макроса, я могу получить правильный код для выбора конкретного листа и т. Д., Но когда я пытаюсь заменить имя переменной, у меня не получается. Код выглядит следующим образом:

Set vDept = Range("U18")
Set vS1 = Range("C2")
Set vS2 = Range("D2")
Set vS3 = Range("E2")
Set vS4 = Range("F2")

If vDept = "vDept" Then
    Worksheets("vDept").Select
    Worksheets vDept.Activate
End If

Всего 1 ответ


Прочитайте приведенный ниже код, в нем есть пояснения о шагах, которые необходимо выполнить:

Option Explicit


Sub DefineObjectsFirst()

' define all Range Objects
Dim vDept As Range, vS1 As Range, vS2 As Range, vS3 As Range, vS4 As Range

Set vDept = ThisWorkbook.Worksheets("Sheet1").Range("U18")  ' <-- replace "Sheet1" with your sheet name

' same applies to all Range objects below
Set vS1 = Range("C2")
Set vS2 = Range("D2")
Set vS3 = Range("E2")
Set vS4 = Range("F2")

' check if range value is "vDept"
If vDept.Value = "vDept" Then
    ThisWorkbook.Worksheets(vDept.Value).Activate  ' Select the sheet (only if necessary)
End If

End Sub

Есть идеи?

10000