2013-11-14 3 views
0

.xlsx에서 .csv 파일을 만들어서 내 CRM에 스크라이브를 업로드하는 데 사용할 수 있습니다. 모든 것이 훌륭하고 멋지지만 내 .xlsx 파일은 두 열의 드롭 다운 목록을 사용하여 100 행을 정적으로 표시합니다. 그래서이 .csv 파일에는 약 90 행의 ",,,,,,,"이 있습니다. 나는 원하지 않습니다. 아래는이 xlsx를 csv로 변환 한 다음 내 컴퓨터에있는 csv를 열어이 행을 제거하고 .csv 파일을 다시 작성하는 스크립트입니다. 유일한 문제는 권한 거부 오류가 발생하여 파일을 다시 열 수 없다는 것입니다.OpenTextFile 권한이 거부되었습니다.

Set objArgs = CreateObject("Scripting.FileSystemObject") 
objStartFolder = "C:\Users\bmckie\Documents\SugarSync Shared Folders\Janis Jarvis\CRM Import Spreadsheet" 
Set objFolder = objArgs.GetFolder(objStartFolder) 

Set colFiles = objFolder.Files 

For Each objFile in colFiles 
If UCase(objArgs.GetExtensionName(objFile.name)) = "XLSX" Then 

Set objExcel = CreateObject("Excel.application") 
objExcel.application.visible=false 
objExcel.application.displayalerts=false 
set objExcelBook = objExcel.Workbooks.Open(objStartFolder & "\" & objFile.Name) 

newfile = objStartFolder & "\" & objArgs.GetBaseName(objFile.Name) & ".csv" 
objExcelBook.SaveAs newfile, 23 

Set objFile = objArgs.OpenTextFile(newfile, 1) 

Do Until objFile.AtEndOfStream 
    strLine = objFile.Readline 
    secondLine = strLine 
    strLine = Replace(strLine, ",", "") 
    strLine = Replace(strLine, " ", "") 
    If Len(strLine) > 0 Then 
     strNewContents = strNewContents & secondLine & vbCrLf 

    End If 
Loop 
MsgBox(strNewContents) 

objFile.Close 

Set newobjFile = objArgs.OpenTextFile(newfile, 2) 
newobjFile.Write strNewContents 
newobjFile.Close 

.xlsx에서 .csv로 변환하거나 권한 문제로 해결할 수있는 모든 솔루션을 제공해 주시면 대단히 감사하겠습니다.

답변

1

Excel에서 여전히 열려 있기 때문에 파일을 열 수 없습니다. 통합 문서를 닫습니다.

관련 문제