My version of VBA seems to be missing quite a few Tool References. Therefore I tried adding a library I know exists (scrrun.dll) through the "Browse" tab although it only results in the following error:
I would appreciate any kind of help regarding how to get access to more tool references.
A reinstall may help, but these references may be pointing to a folder from a different version of windows (*\System32 vs *\SysWow64 may be the issue)
What changed from the system it originally ran on? Search the C: drive for SCRRUN.DLL and if the path has changed, switch that via browsing for the real path. I've never seen that file missing before, but I think it's part of Windows.
On a rare occasion, you may have to re-register the components (again some of these are included Windows components). Check out this reference
This question already has answers here:
Microsoft Excel ActiveX Controls Disabled?
(11 answers)
Closed 8 years ago.
Today, out of the blue, a form that the company I work for uses, suddenly had an issue with it's buttons. Strangely enough it only is affecting what I'm pretty sure are the ActiveX Command Buttons and not causing a problem with the other shapes or drop downs.
The issue. The buttons are non-responsive. When you click, they don't access the code and checking them via the shapes menu and selecting "view code" causes them to open the developer menu, but not the code associated with them. The really big issue is that for some reason they ALL seem to have started failing at the same time. The version on the server no longer works (the primary copy), the copy the user uses (notorious for breaking things) and the version I use (which is on my local computer).
Is there a way to take them an re-associate them with the proper code, without deleting them completely re-making them or is there possibly someone who's had the same issue and figured out a fix?
I'd greatly appreciate any suggestions or help - please note: I'm 99.9% sure that the issue is not code based.
The problem is caused by a recent Office update. Here is the fix posted on http://excelmatters.com/2014/12/10/office-update-breaks-activex-controls/
To fix it, do this:
Close all Office applications.
Do a search in Windows Explorer – make
sure to include hidden and system files and folders – for *.exd files
(note: that’s not *.exe !!) and delete any you find.
Make sure you get these:
C:\users\username\AppData\Local\Temp\Excel8.0\MSForms.exd
C:\users\username\AppData\Local\Temp\VBE\MSForms.exd
Reboot the computer (this is not always necessary, but probably better safe than
sorry)
Restart your Office apps and test the controls again.
This is the default behavior in VS2010. However, after I installed VS2012, I noticed it doesn't open those files I opened last time. Although in the Solution Explorer it remembers my last position, which projects are collapsed, but no file is opened in the editor area after I open the solution. I can't find such setting in opitons. Any help is appreciated!
Try deleting the .suo-file (same folder as .sln-File). May fix the problem. Make also sure that you have writing-permissions for .suo-file.
Today I tried to made "Code Cleanup" of single file in ReSharper 6.0 (VS 2010). The Code Cleanup dialog did not show up so I tried again.
I then discovered, that the feature is grayed out and when I press hotkey for Code Cleanup, the notification area shows that the "command is not available at the moment".
Even the Code Cleanup settings are hidden. The panel where settings should be shown says that the settings are solution-specific and thus a solution needs to be opened (although it is, however).
All other solution-specific settings and features work, except for Code Cleanup.
I want to avoid re-installing ReSharper or resetting its settings, because otherwise I would need to set it up again (long and annoying work of setting all the options as before re-install).
I am afraid that backing up settings and restoring it again restores the problem as well.
Any suggestions?
Suggestions:
Ensure that the file that you're trying to cleanup is included in your solution.
Try to reopen solution (close and then open again).
Upgrade to 6.1.1, maybe its fixed there.
File a bug report at http://youtrack.jetbrains.com
Both ReSharper 7 and 8 seems to work OK.
I know this is an old answer, but I found a little more insight on this. According to Jerrie Pelser in this blog post from last year, this may have to do with the file being part of a NuGet package. In my case, this was definitely it!
In case of link rot, basically the post mentions that ReSharper will avoid refactoring/code cleaning for files it detects were added as part of NuGet packages. This is similar to how it will not allow code cleanup for generated code.
So I'm having to run someone else's excel app on my PC, and I'm getting "Can't find Project or Library" on standard functions such as date, format, hex, mid, etc.
Some research indicates that if I prefix these functions with "VBA." as in "VBA.Date" then it'll work fine.
Webpages suggest it has to do with my project references on my system, whereas they must be ok on the developer's system. I'm going to be dealing with this for some time from others, and will be distributing these applications to many others, so I need to understand what's wrong with my excel setup that I need to fix, or what needs to be changed in the xls file so that it'll run on a variety of systems. I'd like to avoid making everyone use "VBA." as an explicit reference, but if there's no ideal solution I suppose that's what we'll have to do.
How do I make "VBA." implicit in my project properties/references/etc?
-Adam
I have seen errors on standard functions if there was a reference to a totally different library missing.
In the VBA editor launch the Compile command from the menu and then check the References dialog to see if there is anything missing and if so try to add these libraries.
In general it seems to be good practice to compile the complete VBA code and then saving the document before distribution.
I had the same problem. This worked for me:
In VB go to Tools » References
Uncheck the library "Crystal Analysis Common Controls 1.0". Or any library.
Just leave these 5 references:
Visual Basic For Applications (This is the library that defines the VBA language.)
Microsoft Excel Object Library (This defines all of the elements of Excel.)
OLE Automation (This specifies the types for linking and embedding documents and for automation of other applications and the "plumbing" of the COM system that Excel uses to communicate with the outside world.)
Microsoft Office (This defines things that are common to all Office programs such as Command Bars and Command Bar controls.)
Microsoft Forms 2.0 This is required if you are using a User Form. This library defines things like the user form and the controls that you can place on a form.
Then Save.
I have experienced this exact problem and found, on the users machine, one of the libraries I depended on was marked as "MISSING" in the references dialog. In that case it was some office font library that was available in my version of Office 2007, but not on the client desktop.
The error you get is a complete red herring (as pointed out by divo).
Fortunately I wasn't using anything from the library, so I was able to remove it from the XLA references entirely. I guess, an extension of divo' suggested best practice would be for testing to check the XLA on all the target Office versions (not a bad idea in any case).
In my case, it was that the function was AMBIGUOUS as it was defined in the VBA library (present in my references), and also in the Microsoft Office Object Library (also present). I removed the Microsoft Office Object Library, and voila! No need to use the VBA. prefix.
In my case, I could not even open "References" in the Visual Basic window. I even tried reinstalling Office 365 and that didn't work. Finally, I tried disabling macros in the "Trust Center" settings. When I restarted Excel, I got the warning message that macros were disabled, and when I clicked on "enable" I no longer got the error message.
Later I re-enabled all macros in the "Trust Center" settings, and the error message didn't show up!
Hey, if nothing else works for you, try the above; it worked for me! :)
Update:
The issue returned, and this is how I "fixed" it the second time:
I opened my workbook in Excel online (Office 365, in the browser, which doesn't support macros anyway), saved it with a new file name (still using .xlsm file extension), and reopened in the desktop software. It worked.
Even when all references are fine the prefix problem causes compile errors.
What about creating a find and replace sub for all 'built-in VBA functions' in all modules,
like this:
replace text in code module
e.g. "= Date" will be replaced with "= VBA.Date".
e.g. " Date(" will be replaced with " VBA.Date(" .
(excluding "dim t As Date" or "mydate")
All vba functions for find and replace are written here :
vba functions list
For those of you who haven't found any of the other answers work for you.
Try this:
Close out of the file, email it to yourself or if you're at work, paste it from the network drive to your desktop, anything to get it to open in "protected mode".
Now open the file
DON'T CLICK ANY ENABLE EDITING OR THE YELLOW RIBBON
Go to the VBA Editor
Go to Debug - - Compile VBA Project, if "Compile VBA Project" is greyed out, then you may need to click the yellow ribbon one time to enable the content, but DO NOT enable macros.
After you click Compile, save, close out of the file. Reopen it, enable everything and it should be OK. This has worked for me 100% of the time.
In my case I was checking work done on my office computer (with Visio installed) at home (no Visio). Even though VBA appeared to be getting hung up on simple default functions, the problem was that I had references to the Visio libraries still active.
I found references to an AVAYA/CMS programme file? Totally random, this was in MS Access, nothing to do with AVAYA. I do have AVAYA on my PC, and others don't, so this explains why it worked on my machine and not others - but not how Access got linked to AVAYA. Anyway - I just unchecked the reference and that seems to have fixed the problem
I've had this error on and off for around two years in a several XLSM files (which is most annoying as when it occurs there is nothing wrong with the file! - I suspect orphaned Excel processes are part of the problem)
The most efficient solution I had found has been to use Python with oletools
https://github.com/decalage2/oletools/wiki/Install and extract the VBA code all the modules and save in a text file.
Then I simply rename the file to zip file (backup just in case!), open up this zip file and delete the xl/vbaProject.bin file. Rename back to XLSX and should be good to go.
Copy in the saved VBA code (which will need cleaning of line breaks, comments and other stuff. Will also need to add in missing libraries.
This has saved me when other methods haven't.
YMMV.