특정 행 범위를 csv 파일로 변환하는 vbscript가 있습니다.
제 문제는 빈 행을 복사하고 파란색 행을 필요로하지 않는다는 것입니다. 복사하기 전에 전체 빈 행을 어떻게 삭제할 수 있습니까?
내 코드 :xlsx에서 vbscript로 파란색과 빈 셀을 삭제하십시오.
Public Sub xlsToCsv()
Const WorkingDir = "C:\Test\"
Const xlCSV = 24
Const xlUp = -4162
Dim fso, SaveName, myFile
Dim objExcel, objWorkbook, wsSource, wsTarget
myFile = "source_file.xlsx"
SaveName = "test.csv"
With CreateObject("Scripting.FilesystemObject")
If Not .FileExists(WorkingDir & myFile) Then
MsgBox "File not found:" & vbCrLf & WorkingDir & myFile, vbInformation, "Script Cancelled"
WScript.Quit
End If
End With
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts = False
Set objWorkbook = objExcel.Workbooks.Open(WorkingDir & myFile)
Set wsSource = objWorkbook.Sheets(1)
Set wsTarget = objWorkbook.Sheets.Add()
With wsTarget
.Cells(1,1).Value = "ID"
.Cells(1,2).Value = "NAME"
.Cells(1,3).Value = "DESC"
End With
With wsSource
.Range("F7", .Range("F" & .Rows.Count).End(xlUp)).Copy wsTarget.Range("A2")
.Range("A7", .Range("A" & .Rows.Count).End(xlUp)).Copy wsTarget.Range("B2")
.Range("E7", .Range("E" & .Rows.Count).End(xlUp)).Copy wsTarget.Range("C2")
End With
objWorkbook.SaveAs WorkingDir & SaveName, xlCSV
objWorkbook.Close True
Set objWorkbook = Nothing
Set objExcel = Nothing
Set fso = Nothing
Set myFolder = Nothing
End Sub
call xlsToCsv()
빈 또는 청색 행을 자동 필터하여 삭제할 수 있습니다. 그런 다음 CSV를 만드십시오. – danieltakeshi
세포를 위해서뿐만 아니라 필요합니다. 전체 행이 비어 있으면 행을 삭제해야합니다. 이를 필터링 할 수 있습니까? 파란색 셀을 필터링하려면 어떻게해야합니까? – nolags
다음 질문을 참조하십시오 : [colored for] (https://stackoverflow.com/a/35982191/7690982) 및 [blank row delete] (https://stackoverflow.com/a/22542280/7690982) 또는 [열의 비어있는 셀을 기반으로 행을 삭제하는 VBA 코드] (https://stackoverflow.com/a/26610471/7690982) – danieltakeshi