Kongta
asked on
code scraps after upgrade from Excel 2003 to 2013
This code has worked perfectly on Excel 2003
----------------
Dim vtSecurities As Variant, vtFields As Variant
With Application.WorksheetFunct ion
vtSecurities = .Transpose(Range("A2", Range("A2").End(xlDown)))
vtFields = .Transpose(.Transpose("B1" ))
End With
myCRTObject.AutoRelease = False
'make request
Dim sec As Long
For sec = LBound(vtSecurities) To UBound(vtSecurities)
myCRTObject.Subscribe vtSecurities(sec), sec, vtFields
Next sec
but now running on Excel 2013 I get the runtime-error 2147417848 as I imagine on the second part. Any idea how to fix?
thx
Kongta
----------------
Dim vtSecurities As Variant, vtFields As Variant
With Application.WorksheetFunct
vtSecurities = .Transpose(Range("A2", Range("A2").End(xlDown)))
vtFields = .Transpose(.Transpose("B1"
End With
myCRTObject.AutoRelease = False
'make request
Dim sec As Long
For sec = LBound(vtSecurities) To UBound(vtSecurities)
myCRTObject.Subscribe vtSecurities(sec), sec, vtFields
Next sec
but now running on Excel 2013 I get the runtime-error 2147417848 as I imagine on the second part. Any idea how to fix?
thx
Kongta
ASKER
myCRTObject is a library from a external Provider
I have deactivated all lines and unblocked line by line and got the error when cleared
For sec = LBound(vtSecurities) To UBound(vtSecurities)
myCRTObject.Subscribe vtSecurities(sec), sec, vtFields
Next sec
It runs properly when I execute on Excel 2003, executing on Excel 2013 gives the error. I have then designed a all new sheet in 2013 and typed all again as some (found on google) experienced a fix when they not copy/paste the code. But still a Problem. I have one read who fixed it by changing something on his range/workbook, but I dont get it.
I have deactivated all lines and unblocked line by line and got the error when cleared
For sec = LBound(vtSecurities) To UBound(vtSecurities)
myCRTObject.Subscribe vtSecurities(sec), sec, vtFields
Next sec
It runs properly when I execute on Excel 2003, executing on Excel 2013 gives the error. I have then designed a all new sheet in 2013 and typed all again as some (found on google) experienced a fix when they not copy/paste the code. But still a Problem. I have one read who fixed it by changing something on his range/workbook, but I dont get it.
ASKER
to be precise, the code is in a userform
Private Sub Userform_Activate()
If I read all the Problems regarding this issue, it seems to be something with the Range-Instruction, but I am a Rookie on Excel
...
Private Sub Userform_Activate()
If I read all the Problems regarding this issue, it seems to be something with the Range-Instruction, but I am a Rookie on Excel
...
My guess is that the problem is with the myCRTObject from your external provider. You will need to check with them to get an updated version. You can verify this one of two ways. The first, and simplest would be to Breakpoints from the debugger. To do this just click on the line "With Application.WorksheetFunct ion" and press F9. This will place a break point on that line. Now do the steps to trigger this code. The debugger will stop the code at that line. You can press F8 to move to the next line. Keep moving to the next line until you receive the error. If the error happens when you move to the MyCRTObject line, then that is your problem.
The other option is to use line numbers and some error handling code. You can modify your code as follows to accomplish that task. The error message will give you the line number of the error:
The other option is to use line numbers and some error handling code. You can modify your code as follows to accomplish that task. The error message will give you the line number of the error:
On Error GoTo ErrHandler:
10 Dim vtSecurities As Variant, vtFields As Variant
20 With Application.WorksheetFunction
30 vtSecurities = .Transpose(Range("A2", Range("A2").End(xlDown)))
40 vtFields = .Transpose(.Transpose("B1"))
50 End With
60 myCRTObject.AutoRelease = False
'make request
Dim sec As Long
70 For sec = LBound(vtSecurities) To UBound(vtSecurities)
80 myCRTObject.Subscribe vtSecurities(sec), sec, vtFields
90 Next sec
Exit Sub
ErrHandler:
MsgBox "Error on Line " & Erl & vbCrLf & "Error Number: " & Err.Number & vbCrLf & Err.Description, vbCritical, "VBA CODE ERROR"
ASKER
done, when I jump to the line 'next sec' I get the error?! does this mean the error comes from the MyCRTObject line because I'm leaving this line and then the error comes or is it the 'next sec'?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
ok, then I'll Close the Q as this is an external Problem. thx anyway, rgds, Kongta
What is myCRTObject?