0

我正在从 .xlsx 创建一个 .csv 文件,因此我可以使用它从 Scribe 上传到我的 CRM。一切都很好而且很漂亮,但是我的 .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 回答