MS Project Macro VBA

0

Escrevendo uma macro no MS Project que lê valores do Excel. A macro deve contar a ocorrência de uma seqüência específica na coluna da planilha do Excel. Eu uso o seguinte código:

Set objXL = CreateObject("Excel.Application")
Set objWB = objXL.Workbooks.Open("D:\VBA\Design\" + FileName + ".xls")
Set ObjWS = objWB.Worksheets(1)   

ObjWS.Activate

Dim lastRow As Integer   
lastRow = ObjWS.Range("A" & ObjWS.Rows.Count).End(xlUp).row

Dim iVal As Double    
iVal = WorksheetFunction.CountIf(ObjWS.Range("A1:A" & lastRow), "Resource:" & "*")

Problema: quando executo o código pela primeira vez, obtenho

Run time error 13 Type mismatch

onde iVal é declarado. Mas depois de parar a execução e iniciá-la novamente, esse erro não aparece.

Soluções experimentadas: Alterando o valor do tipo de retorno para Integer, Long etc. Mas ainda assim o erro persiste.

Alguém poderia me ajudar a rastrear o problema e encontrar uma solução?

    
por samve 14.10.2016 / 14:12

1 resposta

2

A documentação sugere que sua tarefa antes disso ( lastRow = ObjWS.Range("A" & ObjWS.Rows.Count).End(xlUp).row ) poderia seja o problema.

Você declara lastRow como um Integer, mas a documentação declara que .Row para um Range seria de somente leitura longa. Isso não explica por que funciona na segunda vez, mas pode ser o problema.

    
por 17.10.2016 / 10:37