Sep 14 2020 06:12 AM
I have a simple XLOOKUP in an excel sheet, XLOOKUP(1974, NFA.DATE, NFA.PANAMA). The two range names NFA.x refer to external files. This function works without any issues, even if the external files are not loaded.
I have what I thought was a near identical UDF which has the country as an input;
Function ESGDATA(yyear, ycountry) As Variant
Application.Volatile
Dim xcountry() As Variant
Dim xdate() As Variant
Dim xyear As Variant
xcountry = Range("NFA." & ycountry).Value
xdate = Range("NFA.DATE").Value
xyear = yyear
ESGDATA = Application.XLookup(xyear, xdate, xcountry)
End Function
Even though the function uses application.xlookup, which ought to behave in the same way as in the excel sheet, this function will only work if the external files referred to by NFA.x are loaded.
The first question is why is the behaviour of XLOOKUP different in that one works without the referenced files loaded and the VBA equivalent doesnt? Can it be forced to behave in the same way?
And secondly, if that cant be solved how do I get the reference of the file so I can load it if not already loaded. I'd obviously prefer not to have to do the latter if at all possible.
Andy
Sep 14 2020 10:58 AM
Maybe you will find here the information for it, hope that it helps you as an info.
https://docs.microsoft.com/en-gb/dotnet/visual-basic/language-reference/statements/do-loop-statement
I would be happy to know if I could help.
Nikolino
I know I don't know anything (Socrates)
Sep 14 2020 11:04 AM
Add Infos:
How it works:
= VLOOKUP (FORMULA)
Advantages:
+ when the data source is changed, the cell value is updated automatically
Disadvantage:
- When filtering, the cell values are recalculated
- Compared to pure cell values, increased storage requirements
- If the search term does not exist, #NV is output
- The first hit found is always displayed, so the search term must be unique! See error in column D when using the pure company number as a search term
- all cells must be formatted in the same data format
- Search criteria can be a maximum of 256 characters
Use Vlookup in the macro
The reference function can also be used as a macro. This works via the integration of the WorksheetFunction VLookup ("Search criterion", "Matrix", "Column area", "Area reference").
The main advantage over the conventional S-reference formula function is that you can carry out the calculation by clicking a button and then only the cell values, not the formulas, are in the cells. If you want to recalculate the cell values, just click the button again.
Advantages:
+ only values are written into the cells
+ Macro processing faster than variant 2
Disadvantage:
- Offers only the same functions as the reference formula function
- If the search term does not exist, the macro processing aborts ("On Error Resume Next" prevents the abort by skipping the line of code ")
- If the data source is changed, the cell value is not updated automatically
- The first hit found is always displayed, so the search term must be unique!
- Search criteria can be a maximum of 256 characters
I would be happy to know if I could help.
Nikolino
I know I don't know anything (Socrates)
Sep 14 2020 07:43 PM