Как удалить номер с помощью vbNullString - PullRequest
0 голосов
/ 09 января 2019

У меня есть простой код, который создает CSV из таблицы, которая отлично работает, но мне нужно перебрать данные в таблице и удалить любые 0 (любая ячейка, которая содержит число 0, как таблица имеет уравнения), прежде чем он записывает в выходной файл. Я не могу просто изменить мои уравнения в таблице с помощью оператора if, возвращающего " ", поскольку создаваемый мной выходной файл просто добавит пробел в выходной файл csv, что так же плохо. Я использую выходной файл в качестве входного файла для скрипта, использующего Pascal, и он просто искажает данные, которые он вставляет, из-за " " (пробел).

Я попытался использовать приведенный ниже код в моем коде, и он не работает.

If csvVal = 0 Then
      csvVal.Replace What:=0, Replacement:=vbNullString, Lookat:=xlWhole
End If

Sub saveTableToCSV2()

    Dim tbl As ListObject
    Dim csvFilePath As String
    Dim fNum As Integer
    Dim tblArr
    Dim rowArr
    Dim csvVal
    Dim csvVal2 As Object
    Dim r As Range

    Set tbl = Worksheets("FDA TOOL").ListObjects("tblFDAinfo")
    csvFilePath = "F:\Scripting\Import\Wal-Mart\Zac\Audit_Tool2FDA.csv"
    tblArr = tbl.DataBodyRange.Value

    fNum = FreeFile()
    Open csvFilePath For Output As #fNum
    For i = 1 To UBound(tblArr)
        rowArr = Application.Index(tblArr, i, 0)
        csvVal = VBA.Join(rowArr, ",")
        If csvVal = 0 Then
            csvVal.Replace What:=0, Replacement:=vbNullString, Lookat:=xlWhole
        End If
        Print #1, csvVal
    Next

    Close #fNum
    Set tblArr = Nothing
    Set rowArr = Nothing
    Set csvVal = Nothing
End Sub

Я бы хотел удалить все 0, прежде чем записать в выходной файл.

Ниже показано, что он возвращает для первой строки таблицы.

REP,RAD,130,4,CT,RB1,,,200,PCS,ACC,17389,96R--CR,,,0,,,,,0,

Я бы хотел, чтобы он вернулся:

REP,RAD,130,4,CT,RB1,,,200,PCS,ACC,17389,96R--CR,,,,,,,,,

1 Ответ

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

Попробуйте заменить: csvVal.Replace Что: = 0, Замена: = vbNullString, Lookat: = xlWhole с csvVal = Заменить (csvVal, 0, "")

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