我正在编写VB脚本,将目录中的图像插入Excel文件,并带有图片标题。
当我在代码下运行时,我收到错误:
脚本:C:\ Users \ user \ Desktop \ asd.vbs
行:7
Char:13
错误:类型不匹配:'范围'
代码:800A000D
来源:Microsoft VBScript运行时错误
代码: -
set objExcel = CreateObject("Excel.Application")
objExcel.Application.DisplayAlerts = False
set objWorkbook=objExcel.workbooks.add()
With objExcel.ActiveSheet.Pictures.insert("C:\Users\user\Desktop\test\IMG_9717.JPG")
.Left = range("A").Left
.Top = range("A").Top
.Height = range("A").RowHeight
.Placement = xlMoveAndSize
End With
objWorkbook.Saveas "c:\testXLS1.xls"
objWorkbook.Close
objExcel.workbooks.close
objExcel.quit
set objExcel = nothing
请指导我上面的错误。我该如何解决这个问题?
答案 0 :(得分:1)
VBScript
并不知道Range
的含义。如果这是VBA
,那么它将直接引用ActiveSheet
对象的Application
。
您需要使用应用程序和工作表引用正确地对其进行限定(并且正如其他人所说,提供完整的单元格引用):
objExcel.ActiveSheet.Range("A1").Left
...等
答案 1 :(得分:0)
我建议尝试完整的细胞参考,而不仅仅是列,例如
Range("A1").RowHeight
答案 2 :(得分:0)
替换:
Range("A")
使用:
Range("A1")
可能还有其他错误
答案 3 :(得分:0)
我试过下面的代码。它的工作正常。 在VBS中使用range()函数时,我们必须将它与Active Workbook一起使用。请检查以下代码。
set objExcel = CreateObject("Excel.Application")
objExcel.Application.DisplayAlerts = False
set objWorkbook=objExcel.workbooks.add()
set objsheet=objWorkbook.Worksheets.Add
Set objPic = objExcel.ActiveSheet.Pictures.insert("C:\Users\user\Desktop\test\IMG_9717.JPG")
With objPic
.Left = objsheet.range("D3").Left
.Top = objsheet.range("D3").Top
.Height = objsheet.range("D3").RowHeight
End With
objWorkbook.Saveas "c:\testXLS1.xls"
objWorkbook.Close
objExcel.workbooks.close
objExcel.quit
set objExcel = nothing