Проверьте, является ли имя рабочего листа в рабочей книге именем месяца

Мне нужна помощь с кодом ниже. Я нашел код в Интернете @ StackOverflow. Я добавил несколько строк, но код не работает, и я получаю сообщение об ошибке.

Что я пытаюсь сделать, так это прокрутить каждый рабочий лист в рабочей книге A. И проверить, равно ли имя рабочего листа имени месяца. Если это так, вставьте столбец в столбец A и напишите название месяца листов в ячейках столбца A. В столбце B:H уже есть данные, и каждый существующий рабочий лист месяца имеет динамические строки. Итак, после того, как столбец был вставлен, а имя листа помещено в ячейки (r, 1), скопируйте данные месячных листов в рабочую книгу «Консолидированные данные». ТИА

Dim ws As Worksheet
    Dim i As Long

    For i = 1 To 12
        If IsError(MonthName(i, False)) = True Then
        Else
        Set ws = wbYTD.Sheets(MonthName(i, False))
        End If

        With ws
            .Columns(1).Insert
            .Range("A3").Value = (MonthName(i, False))
        End With
    Next i
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
2
0
277
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта функция возвращает TRUE, когда st содержит допустимое название месяца:

Function isMonthName(st As String) As Boolean
  Dim test
  On Error Resume Next
  test = DateValue(st & " 1, 1999")
  isMonthName = IIf(Err, False, True)
End Function

Примеры:

  • isMonthName("july") возвращается TRUE.
  • isMonthName("julyy") возвращается FALSE.

Я не уверен, что это будет работать во всех регионах, но для меня это нормально.

Функция просто вставляет строку в строку с днем ​​и годом («____ 1, 1999») и проверяет, является ли это действительной датой, используя функцию DateValue. Если это не работает в вашем регионе, просто измените это, вероятно, вам просто нужно изменить строку, чтобы представить «длинную дату» вашего региона.

Другие вопросы по теме