Ошибка при попытке найти и заменить знак qoute на Range.Replace - PullRequest
0 голосов
/ 16 января 2019

У меня есть файл макроса, который разделяет файлы и присваивает им имена по определенному списку. Имена файлов в этом списке, которые содержат знак кавычки ", не создаются, и я хочу найти и заменить их все обычным пробеломтолько в этом диапазоне.

Но когда я запускаю макрос, он возвращает мне

Аргумент не является обязательным.

Может кто-нибудь найти, где моя проблема?

'Loop for creating files
For i = 2 To FilesCounter
    NewWBName = EmailWS.Cells(i, 1).Value
    Set NewWB = Workbooks.Add

    With SplitWS
        .Range(.Cells(1, 1), .Cells(LastRow, LastColumn)).AutoFilter Field:=1, Criteria1:=NewWBName
        .Range(.Cells(1, 2), .Cells(LastRow, LastColumn)).SpecialCells(xlCellTypeVisible).Copy  'Copy cells starting from column B
    End With

    With NewWB.Worksheets(1)
        .Cells(1, 1).PasteSpecial xlPasteFormats
        .Cells(1, 1).PasteSpecial xlPasteValues
        .Cells.EntireColumn.AutoFit
    End With

    'find and replace all th " in the WB names list
    With EmailWS
        .Range("$A:$A").Replace What:=""", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False"
        .Cells(i, 1).Value = NameForFile & "" & NewWBName
    End With

    NewWB.SaveAs fileName:=DesPath & "\" & NameForFile & "" & NewWBName & ".xlsx", Password:=PassFile
    NewWB.Close

Next i

1 Ответ

0 голосов
/ 16 января 2019

" в VBA можно записать как """" или Chr(34)

""" не совпадает с """"

В ближайшем окне введите этот

?Chr(34)
"    '<~~ This is what you will get

, а затем это

?"""" = Chr(34)
True '<~~ This is what you will get

Теперь попробуйте

?""" = Chr(34)

Посмотрите, что вы получите:)

В вашем коде замените """ на """" или Chr(34), чтобы оно стало What:=""""

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...