Макрос Excel для поиска и замены даты

У меня есть макрос, который должен проходить через данные, искать даты, которые не распознаются excel, и изменять их формат, чтобы они были более "дружественными к excel". Когда я пытаюсь запустить его, я получаю ошибку времени выполнения '450': неверное число аргументов или недопустимое свойство назначения.

может ли кто-нибудь просмотреть мой код и помочь мне распознать проблему?

даты имеют формат "201611 - (ноябрь 2016)" и импортированы из CSV-файла папка.

вот мой код

Sub TestFind()
With Worksheets("Sheet1").Range("a1:a500")
    Set c = .Find("201* - (*** 201*)", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Value = .Date(.Left(c.Value, 4), (.Mid(c.Value, 5, 2)), 1)
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub
7
задан Chase
20.05.2023 18:21 Количество просмотров материала 2413
Распечатать страницу

1 ответ

ниже приведен пересмотренный код.

самое значительное изменение от этого:

c.Value = .Date(.Left(c.Value, 4), (.Mid(c.Value, 5, 2)), 1)

для этого:

c.Value = DateSerial(Left(c.Value, 4), (Mid(c.Value, 5, 2)), 1)

обратите внимание, я использовал DateSerial функция для создания даты и удалены точки при вызове DateSerial,Left и Mid, а это функции, а не свойства.

вот полная функция:

Sub TestFind()
    With Worksheets("Sheet1").Range("a1:a500")
        Set c = .Find("201* - (*** 201*)", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do While Not c Is Nothing
                c.Value = DateSerial(Left(c.Value, 4), (Mid(c.Value, 5, 2)), 1)
                Set c = .FindNext(c)
                If Not c Is Nothing Then
                    If c.Address = firstAddress Then Exit Do
                End If
            Loop
        End If
    End With
End Sub
0
отвечен Atzmon 2023-05-22 02:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх