2013-05-05 3 views
2

У меня есть следующий код, как часть моего суб пытается назначить диапазон:VBA ошибка Несоответствие типов при настройке диапазона Excel в слове

'Set xlApp = CreateObject("Excel.Application") 

Dim xlApp As Object 
Set xlApp = GetObject(, "Excel.Application") 
xlApp.Visible = False 
xlApp.ScreenUpdating = False 

Dim CRsFile As String 
Dim CRsMaxRow As Integer 

' get the CR list 
CRsFile = "CRs.xls" 
Set CRsWB = xlApp.Workbooks.Open("C:\Docs\" + CRsFile) 
With CRsWB.Worksheets("Sheet1") 
    .Activate 
    CRsMaxRow = .Range("A1").CurrentRegion.Rows.Count 

    Set CRs = .Range("A2:M" & CRsMaxRow) 

End With 

Dim interestingFiles As Range 

' get the files names that we consider interesting to track 
Set FilesWB = xlApp.Workbooks.Open("files.xlsx") 
With FilesWB.Worksheets("files") 
    .Activate 
    Set interestingFiles = .Range("A2:E5") 
End With 

Есть ли у вас какие-либо идеи, почему я получаю несоответствие типов во время выполнения ошибка?

ответ

0

Просьба указать объект xlApp, как в нижнем коде. Также вы предоставляете полный путь для своей книги при ее открытии.

Sub test() 
     Dim interestingFiles As Range 
     Dim xlApp As Object 

     Set xlApp = GetObject(, "Excel.Application") 
     ' get the files names 

     Dim path As String 
     path = "C:\Users\Santosh\Desktop\file1.xlsx" 

     Set FilesWB = xlApp.Workbooks.Open(path) 
     With FilesWB.Worksheets(1) 
      .Activate 
      Set interestingFiles = .Range("A2:E5") 
     End With 

    End Sub 
+0

без установки 'xlApp' я ожидать' 424 объекта ошибки required', или если файл Безразлично» t существует ошибка в 'Set FilesWB = ...', но OP указывает ошибку 'несоответствие', задающую диапазон". Я ничего не вижу внутри этого блока «С», который выглядит некорректно. –

+0

@DavidZemens Как вы думаете, его 'xlApp.Workbooks.Open (" files.xlsx ")' проблема? – Santosh

+0

in m code Я положил полный путь - я не чувствовал себя комфортно, оскорбляя его в Интернете ... – banjo

2

Если вы запустили код из Word, то проблема заключается в объявлении переменной «interestingFiles». Диапазон существует в Word, а также, поэтому используйте либо вариант, либо добавьте ссылку на Excel, а затем используйте Excel.Range.

Без справки Excel:

Dim interestingFiles As Variant 

И со ссылкой Excel:

Dim interestingFiles As Excel.Range 
+0

Ах, это может быть в корне проблемы. OP не сказал, что приложение выполняет эту подпрограмму, но это имеет смысл. –

+0

Подтверждено, что это исправит проблему в Word :) Хорошая работа! –

Смежные вопросы