VBS中的Excel交叉方法

时间:2014-01-03 06:52:43

标签: excel-vba vbscript vba excel

我正在尝试查找某个范围内是否存在单元格。我复制了在VBA代码中找到的方法,并尝试将其转换为vbs。但它抛出:

  

无法获取Application类的Intersect属性

     

第(12)行:“设置Intersect = ExcelApp.Intersect(FirstRow,MergedRange)”。“”

我的代码如下:

Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True
Set MergedRange = ExcelApp.ActiveSheet.Range("A1")
Set FoundObj = ExcelApp.ActiveSheet.Columns("C").Find("purchase invoice")
Set FirstRow = ExcelApp.ActiveSheet.Range(Replace(FoundObj.Address,"C","A"))
Set Intersect = ExcelApp.Intersect(FirstRow,MergedRange)

我还使用了ExcelApp.Application.Intersect,但也没有用。 让我知道代码有什么问题。

1 个答案:

答案 0 :(得分:1)

首先,您的代码基本上没问题。

我强烈建议不要使用函数名称(Intersect(...))作为变量(Set Intersect = ...)的名称。将所有相关行(Set ...)复制到Excel VBA(2013),删除所有前面的ExcelApp.您得到的编译错误正是这样。重命名变量Intersect to something else会在我的结尾产生完美的代码(VBA虽然......)。

如果你的变量重命名不能解决这个问题,那么进一步检查相交函数的所有参数是否真的是范围....更好地Dim ... As Range它们可以解决以下问题: Find不正确。