Я пытаюсь определить метод для «игнорирования» пустых ячеек в файле CSV, который получается из данных листа Excel.Игнорирование пустых ячеек в CSV Экспорт данных рабочего листа Excel
Пустая ячейка будет результатом ввода пользователя в одну строку ИЛИ строку ниже (обе строки никогда не будут заполнены, однако заголовок, на который делается ссылка в скрипте, должен оставаться тем же). Одна строка относится к требованиям к дискам в одной ОС, а строка ниже ее относится к требованиям к дискам другой ОС, если это применимо; формат требований к диску будет по-прежнему применяться к заголовку в его текущем формате.
В настоящее время, когда код VBA применяется к листу Excel, недостающие данные из пустой строки, относящиеся к первым требованиям к диску ОС, «толкают» информацию следующей строки, вводя пустую ячейку. Я хотел бы найти способ, чтобы код VBA «игнорировал» пустую строку и вместо этого вводил данные исходящей строки в эту ячейку. Код VBA Я использую:
Sub WriteCSVFile()
Dim My_filenumber As Integer
Dim logSTR As String
My_filenumber = FreeFile
logSTR = logSTR & "Header1" & " , "
logSTR = logSTR & "Header2" & " , "
logSTR = logSTR & "Header3" & " , "
logSTR = logSTR & "Header4" & " , "
logSTR = logSTR & "Header5" & " , "
logSTR = logSTR & "Header6" & " , "
logSTR = logSTR & "Header7" & " , "
logSTR = logSTR & "Header8" & " , "
logSTR = logSTR & "Header9" & " , "
logSTR = logSTR & "Header10" & " , "
logSTR = logSTR & "Header11" & " , "
logSTR = logSTR & "Header12" & " , "
logSTR = logSTR & "Header13" & " , "
logSTR = logSTR & Chr(13)
logSTR = logSTR & Cells(18, "C").Value & " , "
logSTR = logSTR & Cells(19, "C").Value & " , "
logSTR = logSTR & Cells(20, "C").Value & " , "
logSTR = logSTR & Cells(21, "C").Value & " , "
logSTR = logSTR & Cells(22, "C").Value & " , "
logSTR = logSTR & Cells(26, "C").Value & " , "
logSTR = logSTR & Cells(27, "C").Value & " , "
logSTR = logSTR & Cells(28, "C").Value & " , "
logSTR = logSTR & Cells(29, "C").Value & " , "
logSTR = logSTR & Cells(30, "C").Value & " , "
logSTR = logSTR & Cells(31, "C").Value & " , "
logSTR = logSTR & Cells(32, "C").Value & " , "
Если нет никаких данных, в результате logSTR = logSTR & Клетки (31, «С») Значение & «» Я хотел бы иметь данные из logSTR = logSTR. & Ячейки (32, «C»). Значение & «,» помещено в эту ячейку, а не оставляет пробел. Это позволило бы форматировать данные (3 значения, разделенные запятой) с заголовками Header11, Header12 и Header13 (а не Header12, Header13 и No Header).
logSTR = logSTR & Chr(13)
logSTR = logSTR & "" & " , "
logSTR = logSTR & "" & " , "
logSTR = logSTR & "" & " , "
logSTR = logSTR & "" & " , "
logSTR = logSTR & "" & " , "
logSTR = logSTR & Cells(36, "C").Value & " , "
logSTR = logSTR & Cells(37, "C").Value & " , "
logSTR = logSTR & Cells(38, "C").Value & " , "
logSTR = logSTR & Cells(39, "C").Value & " , "
logSTR = logSTR & Cells(40, "C").Value & " , "
logSTR = logSTR & Cells(41, "C").Value & " , "
logSTR = logSTR & Cells(42, "C").Value & " , "
logSTR = logSTR & Chr(13)
logSTR = logSTR & "" & " , "
logSTR = logSTR & "" & " , "
logSTR = logSTR & "" & " , "
logSTR = logSTR & "" & " , "
logSTR = logSTR & "" & " , "
logSTR = logSTR & Cells(46, "C").Value & " , "
logSTR = logSTR & Cells(47, "C").Value & " , "
logSTR = logSTR & Cells(48, "C").Value & " , "
logSTR = logSTR & Cells(49, "C").Value & " , "
logSTR = logSTR & Cells(50, "C").Value & " , "
logSTR = logSTR & Cells(51, "C").Value & " , "
logSTR = logSTR & Cells(52, "C").Value & " , "
Open "Z:\SHARED DRIVE\RequestDirectory\" & ThisWorkbook.Name & ".csv" For Append As #My_filenumber
Print #My_filenumber, logSTR
Close #My_filenumber
End Sub
Просто используйте оператор If отсеять заготовки, например, если клетки (52, «C») <> "" then logSTR = logSTR & Cells (52, "C"). Value & "," – Absinthe