如何使用vbNullString删除数字

时间:2019-01-09 15:40:37

标签: excel vba csv

我有简单的代码,可以从工作正常的表中创建一个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 :(得分:0)

尝试更换:     csvVal.Replace什么:= 0,替换:= vbNullString,查找:= xlWhole 与     csvVal = Replace(csvVal,0,“”)