
各位老哥好,今天找通义千问写的代码遇到了如图所示上的报错。
代码全文如下:
' 获取脚本当前所在目录的绝对路径
Dim wshShell
Set wshShell = CreateObject("WScript.Shell")
strCurDir = wshShell.CurrentDirectory
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
' 打开输入文件
Const INPUT_FILE_PATH = "1.csv"
Set objWorkbookInput = objExcel.Workbooks.Open(strCurDir & "\" & INPUT_FILE_PATH)
Set objWorksheetInput = objWorkbookInput.Worksheets(1)
' 创建新的Excel工作簿用于输出
Set objWorkbookOutput = objExcel.Workbooks.Add
Set objWorksheetOutput = objWorkbookOutput.Worksheets(1)
' 定义要复制的列范围
Dim copyColumns(), i
copyColumns = Array("A", "F", "G", "H", "I", "M", "N", "O", "AK")
For i = 0 To UBound(copyColumns)
With objWorksheetInput.Range(copyColumns(i) & "1:" & copyColumns(i) & objWorksheetInput.Cells.SpecialCells(xlCellTypeLastCell).Row)
.Copy Destination:=objWorksheetOutput.Range(copyColumns(i) & "1")
End With
Next
' 将输出内容保存为CSV文件
Const OUTPUT_FILE_PATH = "output.csv"
objWorkbookOutput.SaveAs strCurDir & "\" & OUTPUT_FILE_PATH, 6 ' 使用6代表CSV格式
' 关闭工作簿,不保存更改(对于input workbook不需要,因为没做改动;对于output workbook,已经保存过了)
objWorkbookInput.Close False
objWorkbookOutput.Close False
' 退出Excel应用程序
objExcel.Quit
判断是第23行出了问题
.Copy Destination:=objWorksheetOutput.Range(copyColumns(i) & "1")
不确定是环境配置出问题还是哪里出错了。
计划在Windows环境下,正常双击启用vbs,目标是在同目录文件夹中,从指定的1.csv文件复制特定列的内容并粘贴到新的csv中。