类型不匹配:'范围'

时间:2018-01-16 13:37:32

标签: excel excel-vba vbscript scripting automation vba

我正在编写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

请指导我上面的错误。我该如何解决这个问题?

4 个答案:

答案 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