Заменить значения в диапазоне - PullRequest
1 голос
/ 27 мая 2020

Я пытался выполнить эту замену двумя разными способами (первая попытка прокомментирована ниже), но вместо этого она заменяет все на листе:

Sub NoNullSaveCSV()
    Dim WB As Workbook
    Dim WS As Worksheet
    Dim find1 As Variant
    Dim rplc1 As Variant
    Dim find2 As Variant
    Dim rplc2 As Variant
    Dim Rng As Range

    Application.Workbooks.Add xlWBATWorksheet
    Set WB = ActiveWorkbook
    Set WS = ActiveSheet

    With ThisWorkbook.Worksheets("PedidosTratados")
        .Range("A3:DW1000").Copy
        WS.Range("A1").PasteSpecial xlPasteValues
    End With

    WS.Range("A1").Value = "FilterCol"
    WS.Columns.AutoFilter Field:=1, Criteria1:=""
    WS.UsedRange.SpecialCells(xlCellTypeVisible).EntireRow.Delete
    WS.AutoFilterMode = False

    ReplaceCount = ReplaceCount + Application.WorksheetFunction.CountIf(WS.Cells, "*" & fnd1 & "*")
    '+ Application.WorksheetFunction.CountIf(WS.Cells, "*" & fnd2 & "*")

    fnd1 = "7.9000"
    rplc1 = "7.900"
    fnd2 = "9.9000"
    rplc2 = "9.900"

    With WS
        .Range("AT2:DW1000").Replace fnd1, rplc1
        .Range("AT2:DW1000").Replace fnd2, rplc2

        '.Cells.Replace what:=fnd1, Replacement:=rplc1, _
        'LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False, _
        'SearchFormat:=False, ReplaceFormat:=False

        '.Cells.Replace what:=fnd2, Replacement:=rplc2, _
        'LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False, _
        'SearchFormat:=False, ReplaceFormat:=False
    End With

        WB.SaveAs fileName:=ThisWorkbook.Path & "\Pedidos.csv", FileFormat:=xlCSV
        WB.Close False

MsgBox "Após a pesquisa, foram feitas " & ReplaceCount & " substituições."

End Sub

Не могли бы вы сказать мне, почему это не сдерживает замену в указанном диапазоне?

Спасибо!

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