У меня есть простой код, который создает 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,,,,,,,,,