Excel is missing certain functions - excel

Just now i realized that my Excel Version is missing some functions, e.g. =UNIQUE() or =XLOOKUP(). Also in the tab with the list of all functions these are not available. Other functions work fine though. Is there a way to install these functions manually?
I am using: Microsoft® Excel® 2016 MSO (Version 2112 Build 16.0.14729.20156) 64 Bit
I just tried to update, but it is already up-to-date.
[Sidenote: I am using the German Version, so I am actually missing the functions =EINDEUTIG() and =XVERWEIS() but either or - these functions are missing in my Excel]

Unless you're using Microsoft Office 365 compatible version of Excel, your only other chance might be to sign up with Office Insider, which gives you access to exclusive new content / features as a trial user (whilst unique, filter, let, sort, sortby etc. functionality has been out for some time, there may well be dependencies on this RE: new content). Thanks to Insider I had access to unique functionality long before the Office 365 build was officially launched (about a year before if I remember correctly).
You can do both this and see what version Excel you are on by opening Excel and selecting File -> Account:

Related

Missing: Microsoft PowerPoint 16.0 Object Library (Excel VBA)

I've written a piece of kit on Excel 2016 that uses a combination of formula and vba macros.
Basically some of the people that will be using this may be using an older version of Excel (2013 or 2010). When testing out whether the file will run on 2013 the Microsoft Powerpoint 16.0 library was missing and some of the code would not run.
The only fix was to add the Microsoft PowerPoint 15.0 library and then it seemed to work.
Is there any way to add the libraries automatically when I send this file to other people, or add the 15.0, 14.0 and 13.0 library's in my copy so that this is not an issue for other users?
[EDIT] From further reading it appears that older versions of excel use different libraries and it doesn't look like you can "pick and choose" whether to use 16.0, 15.0 etc. (Please correct me if I'm wrong). Apparently there is something called "Early/Late Binding" which might help me out, I assume this is referencing within my actual VBA code so if that is a viable solution any more information would be appreciated.
You have two options.
Develop on the lowest common denominating Office version (references will automatically "upgrade" on newer versions)
Change your code from early binding (using a reference to the library) to late binding (using generic Object declarations for everything related to PPT, replacing all PPT constants with their associated values). You then get a reference to Powerpoint using the CreatObject or GetObject function.

JavaScript API does not work for Excel 2013?

I just got a change recommendation report for one add-in I submitted. It says Your add-in is not working in the Excel 2013 client on Windows 7 with Internet Explorer 11.
I have always been testing my add-in in Excel 2016 and Excel Online. So I just installed Excel 2013 (version 15.0.4841.1000, which includes SP1), indeed the add-in does not work. But it seems that few things work...
For example, the following example function writes haha in Cell A1 under Excel Online, whereas, it does not anything in Excel 2013.
function test () {
Excel.run(function (ctx) {
var range = ctx.workbook.worksheets.getItem("Sheet1").getRange("A1");
range.values = [["haha"]];
return ctx.sync();
});
}
So does anyone know if JavaScript API supports Excel 2013? If not, many professionals will not be able to use add-ins because they are still with Excel 2013...
PS: I see there are lots of add-ins in office store require Excel 2013 or later or Excel 2013 Service Pack 1 or later. If JavaScript API does not support Excel 2013, how have these add-ins (eg, Stock Connector) been developed?
Edit 1: In my manifest xml:
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="TaskPaneApp">
In my Home.html, I have:
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
Edit 2: I guess the following setting is equivalent to say the add-in is not supposed to be used in Excel 2013?
<Hosts>
<Host Name="Workbook" />
</Hosts>
<Requirements>
<Sets>
<Set Name="ExcelApi" MinVersion="1.2"/>
</Sets>
</Requirements>
<DefaultSettings>
...
</DefaultSettings>
When you use the Office.js APIs, you will see that each method is annotated with an API set designation. For example:
These API sets correspond to what versions of Office the add-in will work on. The list of requirement sets, and where they're supported, can be found at http://dev.office.com/reference/add-ins/office-add-in-requirement-sets.
Any of the new Office 2016 host-specific API sets (ExcelApi, WordApi, etc.) are only supported on Excel 2016+ (and Office Online and Mac/iOS equivalents). The API version number (1.1 vs. 1.2 vs. 1.3) corresponds to updates to the APIs, that were added past the RTM build of Office 2016 (which shipped with 1.1 out-of-the-box). Those updates are available to customers who have an Office 365 subscription (home or business). Customers who bought a disk/MSI product of Office 2016 will only have the original 1.1 APIs.
You can use the requirement sets in two ways. If your add-in 100% depends on a particular API set, you should list it in your manifest file. That way, the add-in won't even be proffered on the "Insert/Manage Add-ins" dialog for Office versions that don't support that particular API set.
On the other hand, if you're only using a few APIs in the set, and could do without (even if it's a bit of a degraded experience), you can do the "light-up scenario". That is, you will list the lowest possible version that you do need, and then use a runtime check to detect whether a particular API set is available.
Concrete example: suppose you have an Excel Add-in that creates a new sheet and outputs data into a table. This requires ExcelApi 1.1 version or higher. Ideally you would also like to be able to set the column widths, but range.format.columnWidth is only available in ExcelApi 1.2. You don't want to block customers from using your Add-in if they have an old version -- after all, the bulk of your functionality will still work, even if not optimally -- but you do want to make use of the new APIs. In that case, you should specify ExcelApi 1.1 in your manifest, and then do a runtime check in you JavaScript to determine if you can run the range.format.columnWidth code. I.e.:
if (Office.context.requirements.isSetSupported("ExcelApi", 1.2 )
{
range.format.columnWidth = 25;
}
For a related answer, see Neat ways to get environment (i.e. Office version)
Excel 2013 supports some things, but there's lots that it doesn't support, including anything using Excel.run().
http://dev.office.com/reference/add-ins/office-add-in-requirement-sets

Is there x64 implementation of this Excel VBA function customization dll?

I found from internet the following Excel VBA function customization tool by Laurent Longre several years ago:
Homepage:
http://www.xcell.excelabo.net/funcustomize
Download link:
http://www.xcell.excelabo.net/clic?fichier=funcustomize
which is an FUNCUSTOMIZE.DLL added-in for 32bit (Excel 95 / 97 / 2000 / 2002) versions. This free add-in allows to customize VBA user-defined functions in Excel's function wizard :
add descriptive text to each argument
store user-defined functions in a new category (e.g. "FunCustomize demo")
However, there is no source code release and the current added-in usually causes Excel2013 collapse on x64 windows 8.1 platform.
I wonder how can I recreate the same implementation with C/C++/C# so as to modify it for the latest Excel versions and the windows platforms?

Get objects / functions from SAP BEx (Business Explorer) Analyzer Excel add-in

I work with an Excel add-in called SAP BEx Analyzer (BExAnalyzer.xla).
Unfortunately, the documentation of this add-in seems very incomplete and it's a pain to work with it.
I would like to know if there is a way to inspect such an add-in to see what objects/methods/function and so on it contains?
Many thanks!
In the current release of SAP Business Explorer (based on 7.30), the BExAnalyzer.xla file is unprotected so you are able to inspect it.
If you wish to delve deeper in to the BEx object model, it is worth adding a reference in your VBA Project to the two type libraries (BExAddin.tlb and BExApi.tlb) in the Business Explorer installation folder (usually located in \Program Files (x86)\SAP\Business Explorer\BI\).
I'm actually in the exact same boat with BEx. I haven't found any official documentation but a hefty amount of google fu gets me by. I've also had some luck pressing F2 in the code window when you have the SAPBEX.xla module selected and then picking the SAPBEX library in the first drop down. It will give you all the methods/functions/constants in the library which isn't documented well at all either but you can make some educated guesses and trial and error...if you have the spare time.

how to check if ms office product is installed and version of it VC++?

I want to find whether ms office is installed and version of it...
how can i do it ?
Microsoft Office Version Detector
How does it work?
The code is based on an outdated Microsoft knowledge base article Q247985 (the code in the knowledge base article does not work for Office 2003 or 2007). The code looks for a specific registry key which holds the version for each application (e.g. HKEY_CLASSES_ROOT/Excel.Application/CurVer for Excel) which contains the version encoded in a string ("Excel.Application.11" on my computer). The internal Microsoft version number (i.e. the "11" at the end of "Excel.Application.11" ) is then mapped to the external "marketing" name, that you will be more familiar with (e.g. the internal version "11" is more commonly known as "Office 2003").
Since you've tagged it as visual C++, I'm assuming you want to do it in C++.
One way is to parse through the following registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
For e.g.
Enumerate this key and find out if the value displayname contains Microsoft Office Excel MUI (English) 2007
You may also find the version number in other values like version, versionmajor, verisonminor
FYI you can use this registry key to find out almost any software which 'installs' on your system.
This is only for 32 bit installation though. For 64-bit installation, you'll need to find a similar tree structure inside registry node WOW6432Node.

Resources