0

Scribe から CRM にアップロードするために使用できるように、.xlsx から .csv ファイルを作成しています。すべてが順調に進んでいますが、私の .xlsx ファイルでは、静的に 100 行のいくつかの列でドロップダウン リストを使用しています。したがって、この .csv ファイルには約 90 行の ", , , , ," が含まれていますが、これは望ましくありません。以下は、この xlsx を csv に変換し、csv バックアップを開いてこれらの行を削除し、.csv ファイルを書き直すスクリプトです。唯一の問題は、アクセス許可が拒否されたというエラーが発生するため、ファイルを再度開くことができないことです。

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 への変換、またはアクセス許可の問題に関する解決策は大歓迎です。

4

1 に答える 1

1

Excelがまだ開いているため、ファイルを開いて書き込むことができません。ブックを閉じます。

于 2013-11-14T15:38:56.323 に答える