Ссылка на рабочий лист с именем переменной

#excel #vba #variables

Вопрос:

У меня возникли проблемы с использованием имени рабочего листа переменной в других областях моего кода. Я хотел бы скрыть рабочий лист на основе имени, в котором используется дата в определенной ячейке. Вот применимый код.

 Sub StartMedCount()  Dim actionname As String actionname = "Action List " amp; Sheets("MedicationCounts").Range("C2").Value  ThisWorkbook.Worksheets(actionname).Select  ActiveWindow.SelectedSheets.Visible = False  end sub  

У меня уже есть лист с названием «Список действий 11-24-2021», а ячейка C2 содержит 11-24-2021. Я получаю ошибку времени выполнения 9 — индекс вне диапазона. Вы можете помочь мне это исправить?

Комментарии:

1. Попробуйте изменить .value на .text

2. Попробуй: amp; Format$(Sheets("MedicationCounts").Range("C2").Value, "mm-dd-yyyy")

Ответ №1:

Я попробовал это ниже, и это работает для меня.

 Sub StartMedCount()  Dim ws As Worksheet  Dim ActioNname As String    Set ws = ThisWorkbook.Worksheets("MedicationCounts")  ActioNname = "Action List " amp; ws.Range("C2").Value    ThisWorkbook.Worksheets(ActioNname).Visible = False  End Sub  

Ответ №2:

Мы нашли следующее исправление:

Дата в C2 была отформатирована в mm-dd-yyyy формате, но истинное значение было mm/dd/yyyy . Мы изменили формат на текст и ввели его с помощью дефисов. В другом месте кода, когда я добавляю эту дату, я использую Формат, чтобы изменить ее на дефисы, прежде чем она будет введена в ячейку.