« first day (636 days earlier)      last day (2544 days later) » 

12:01 AM
RELOAD!
[Hosch250/Rubberduck] 13 commits. 962 additions. 9197 deletions.
[retailcoder/Rubberduck] 4 commits. 58 additions. 46 deletions.
[rubberduck-vba/Rubberduck] 2 commits. 5 opened issues. 2 closed issues. 13 issue comments. 46 additions. 42 deletions.
[Vogel612/TranslationHelper\‌​] 3 commits. 702 additions. 341 deletions.
[Zomis/Machine-Learning] 15 commits. 1647 additions. 279 deletions.
 
12:32 AM
@Hosch250 I mean both - the toolbar buttons and the context menu :-)
 
@Mat'sMug Both what?
 
> the toolbar buttons and the context menu
2.2K achieved!
> Rubberduck.Setup.1.4.3.0.exe (4.32MB) - Downloaded 2201 times.
Last updated on 2015-07-08
 
> 32 Bit Office
Yes, I'm local admin, ran install as administrator
Tried on another machine got same error
![hresult](https://cloud.githubusercontent.com/assets/17600327/13480876/e7db76e0-e0ae-11e5-9955-9835fee336ca.png)
 
@Duga wtf
 
12:52 AM
@Mat'sMug What about both of them?
 
Well I'd have them both
 
> Sorry, hit the wrong button

Applied PowerShell commands still getting HRESULT error
 
Oh, OK.
 
A context menu (or drag and drop) should never be the only way to do something anyway.
@Duga this has to be a dupe
 
> uninstalled and reinstalled as admin, it seems to be working now.
 
1:08 AM
@Duga Original install was while a VBE host application was running?
 
@ThunderFrame IDK. The add-in is installed and "runs", that error is ours.
 
1:23 AM
^Likes 2.0 more than released build...
 
I'm not blaming the guy
 
^Doesn't like 20 minutes resolving ;-p
my XML Spreadsheet code has gone from string concat, to StringBuilder, to XMLWriter stream.
Now writes XML like a non-bozo
 
@Rubberduck203 that's awesome! Did you tell him about RD?
 
1:39 AM
@Mat'sMug I created a ResourceDictionary, but I've no idea how to actually get it to work.
 
@Hosch250 not sure it can work in a dll / not-a-WPF-app project. If it works we'll centralize all styling there and clean up the xaml everywhere :-)
 
WHEEEE!!! It works!
2
 
[Hosch250/Rubberduck] Hosch250 deleted branch SafeDelete
[Hosch250/Rubberduck] Hosch250 pushed commit 539bbb5e to SafeDelete: Basic framework
[Hosch250/Rubberduck] Hosch250 pushed commit a2bee1fb to SafeDelete: Merge branch 'next' of github.com/rubberduck-vba/Rubberduck into SafeDelete
 
2:28 AM
@RubberDuck Do you know how to unpublish a branch from LibGit2Sharp?
 
@Hosch250 nice!
 
 
3 hours later…
5:12 AM
0
Q: Delete Remote Branch

Hosch250I need to delete a remote branch, and found this technique: git push origin :the_remote_branch I tried passing it to Networks Push method in the following forms, but nothing seems to work (options is my login credentials): _repo.Network.Push(_repo.Network.Push(_repo.Network.Remotes["origin...

0
A: libgit2sharp remove remote branch

Hosch250This is failing with a 401 Unauthorized error because it is unauthorized. To fix this error, you just need to pass the options containing your credentials to the Push() method: repository.Network.Push(remote, pushRefSpec, options) That fixed this problem for me.

 
@Hosch250 worst case, it's ok if we can only delete local branches
remote branch can be deleted from GitHub
wait, there's a difference between "delete" and "remove"?
 
5:41 AM
Some of you guys have really great blogs and which I could find old posts faster as often the info in an old post is what I need. I addressed this issue in my blog which is environmental using a ms-access application. The application is available from this link. dropbox.com/s/bpeqyphp5wzxeaj/BlogIndexer_2016-03-03.zip?dl=0 I am providing this application both as a means to create index in you blogs and as real world test application for the VBA Rubberduck developers.
 
@Mat'sMug Remove works for local, but not for remote.
 
Creating an Interface called Class, and Implementing its Initialize method is an Evil way to get an automation error.
2
 
@AndrewM hey thanks!
@RubberDuck check this out ^^^^
@ThunderFrame lol! I just stole that :)
 
it compiles, but it doesn't run...
 
a lot of VBA sanity checks are at runtime. too much of 'em.
 
5:54 AM
@Mat'sMug That is why I can't stand Python.
 
VBA lets you name a class as "Class", but doesn't let you name a class as "Implements"...
 
lovely
 
It's a good thing not many people know about Interfaces in VBA, because the user interface for working with interfaces is lousy.
 
well, Class isn't a reserved keyword
 
It is a reserved word in VB Script
 
5:58 AM
huh
 
yeah, you can write multiple classes in a single VBS file.
 
Creating an Interface called Class, and Implementing its Initialize method is an Evil way to get an automation error. #VBA
 
#EvilVBA
 
[Hosch250/Rubberduck] Hosch250 pushed commit 4cf2fc8d to BugBlipper: Resource dictionary.
 
6:36 AM
working on some DeclarationFinder class
by the time I'm done with it, a truckload of declaration searches will be O(1)
 
Big Oh!
 
but it's TTGTB now
 
7:38 AM
[retailcoder/Rubberduck] retailcoder pushed commit edb6ce76 to CodeExplorer: Completely unreal improvements to resolver performance (fixes #1166)
 
8:00 AM
> Performance felt like this yesterday:

> 'ThisWorkbook' is Ready. Resolver took 6488ms to complete.
'vbVBAAllPri' is Ready. Resolver took 15748ms to complete.
'fnConstPri' is Ready. Resolver took 9360ms to complete.
'fnTypePri' is Ready. Resolver took 41024ms to complete.
'vbXlPivotAxisPri' is Ready. Resolver took 45925ms to complete.
'fnInfoErrMsgPri' is Ready. Resolver took 80103ms to complete.
'fnCheckPri' is Ready. Resolver took 117537ms to complete.
'vbFnCollectionPri' is Ready.
[retailcoder/Rubberduck] retailcoder pushed commit 57c7e68c to CodeExplorer: fixed debug output wording
> How did this happen? Easy: the vast majority of identifier lookups is now O(1), and the rest operates on a very limited subset of all declarations, so there's pretty much never a O(n) lookup happening.
 
@ThunderFrame ^^ check that one out!!!
oh shit
96 tests broke
 
[rubberduck-vba/Rubberduck] build for commit 57c7e68c on unknown branch: AppVeyor build failed
BUILD FAILURE!
> Oops. 96 tests broke. Not merging just yet.
[retailcoder/Rubberduck] retailcoder pushed commit d99048cc to CodeExplorer: fixed broken tests / exception in DeclarationFinder constructor
 
parsing is now longer than resolving
 
off to bed. good night nap!
 
8:14 AM
[rubberduck-vba/Rubberduck] build for commit d99048cc on next: AppVeyor build cancelled
BUILD FAILURE!
[rubberduck-vba/Rubberduck] retailcoder pushed commit 83e74bd4 to next: fixed FindAllReferencesCommand to not only search user declarations
[rubberduck-vba/Rubberduck] retailcoder pushed commit de4fb119 to next: fixes #1161 (does not address performance)
[rubberduck-vba/Rubberduck] retailcoder pushed commit 89807b53 to next: fixed & clarified FindAllReferencesCommand
[rubberduck-vba/Rubberduck] retailcoder pushed commit edb6ce76 to next: Completely unreal improvements to resolver performance (fixes #1166)
[rubberduck-vba/Rubberduck] retailcoder pushed commit 57c7e68c to next: fixed debug output wording
[rubberduck-vba/Rubberduck] retailcoder pushed commit d99048cc to next: fixed broken tests / exception in DeclarationFinder constructor
Merge pull request #1168 from retailcoder/CodeExplorer

Resolver performance fix
> @Vogel612

> That should get you to something between a quarter and a tenth of the runtime...

Make that anywhere between half, and 1/30th of the runtime.
[rubberduck-vba/Rubberduck] build for commit c06ef2e9 on next: AppVeyor build succeeded
 
 
5 hours later…
1:20 PM
If my calculations are correct, the resolver performance has just improved by anywhere between 100% and... somewhere around 3000% #Yay
 
 
1 hour later…
2:39 PM
> I'm yet to pull the updates, but I have some ideas around resolving *all* of the non-project referenced types, exactly once. It seems that adding a reference to a project, prompts VBE to *immediately* load all of the TypeInfo details for the reference, *at the time* of adding the reference. Similarly, removing a reference seems to *immediately* remove those TypeInfo details.

Given VBIDE ReferenceEvents tell us when a reference is Added or Removed, couldn't we load and cache the TypeInfo det
 
2:53 PM
> @autoboosh OK, please feel free to use the example workbook for any integration tests.
> @retailcoder This sounds promising!!! GREAT!! ... i pulled all commits and now Parsing takes forever ... 15min or so . Also a lot of Unknown identifier program outputs are floating my output window ...
Is anything missing on my side??
> @ThunderFrame that's a very nice idea - however there's a fine line we need not to cross, between *collecting available data* and *reverse-engineering* code that's protected for a reason that sometimes goes beyond write protection. VBA needs the type information of protected projects to *compile and run* them.

I like that it could make this code useless:

- [VbaStandardLib](https://github.com/rubberduck-vba/Rubberduck/blob/next/Rubberduck.Parsing/Symbols/VbaStandardLib.cs)
- [MsFormsLi
 
3:10 PM
> @Pitterling when I tested against your workbook yesterday, parsing completed in a relatively reasonable amount of time (as it did before - no change there), and resolving completed in less than two minutes (which is a dramatic improvement)... not sure how the *parsing* step could take that long, this code wasn't modified and I'm not seeing it affected at all here.

The debug output is from the resolver, as I explainer above:

> The "Ambiguous match in '{localScope}': '{identifierName}'" de
 
per our issues list, v2.0 is 70% completed
 
> @retailcoder Yes, I agree - Reverse Engineering, or circumvention is a bad idea.

But if it's visible in Object Explorer then at least those type declarations are not hidden from the user, and so we should know about them.

Object Explorer shows the public types, even for Protected Projects, and it shows Private and Public types for unprotected projects. It's amazing how many projects I've seen, that have project and sheet protection, only to expose public constants or methods that allow
> This could be faster if it queries the name dictionary and then filtered by DeclarationType.
> This could be faster if it queries the name dictionary and then filtered by DeclarationType.
> This could be faster if it queries the name dictionary and then filtered by DeclarationType.
> This could be faster if it queries the name dictionary and then filtered by DeclarationType.
> This could be faster if it queries the name dictionary and then filtered by DeclarationType.
 
@Duga Now you're running the resolver multiple times :-p
TTGTB
 
'night!
 
> This whole class might not be needed at all, if this _declarationsByName dictionary went into the resolver itself.
 
3:17 PM
@Mat'sMug what am I checking out?
 
> The steps I used above seem to only have worked on one of the two machines I tried.

The original machine where I first reported the error now randomly gives an error when starting VBA, when it does not give an error, none of the rubber duck functionality works.
 
If my calculations are correct, the resolver performance has just improved by anywhere between 100% and... somewhere around 3000% #Yay
what took 20 minutes to resolve yesterday, now completes in about a minute
 
That's crazy
(monking)
 
yo
@PinCrash what was crazy, was iterating all declarations every time we needed to search for a given identifier.
     _declarationsByName = declarations.GroupBy(declaration => declaration.IdentifierName)
          .ToDictionary(grouping => grouping.Key, grouping => grouping.ToArray());
^^ this did the magic
instantly, all identifier name lookups went to O(1)
so the resolver is now, overall, roughly O(n) where n is the number of identifier references
 
So, you put the declarations in an array and just search that?
 
3:20 PM
private readonly IDictionary<string, Declaration[]> _declarationsByName;
a dictionary of arrays
 
Ohhhhh that's cool
 
I think the complexity was somewhere around O(n^k), where n is the number of identifier references, and k is the number of declarations.
 
good old Shlemiel the Painter's algo
 
@Vogel612 I know nothing of algorithms haha
what's that?
 
3:24 PM
I'll save that for later lol, tl;dr ;-)
 
> Shlemiel gets a job as a street painter, painting the dotted lines down the middle of the road. On the first day he takes a can of paint out to the road and finishes 300 yards of the road. "That's pretty good!" says his boss, "you're a fast worker!" and pays him a kopeck.

The next day Shlemiel only gets 150 yards done. "Well, that's not nearly as good as yesterday, but you're still a fast worker. 150 yards is respectable," and pays him a kopeck.

The next day Shlemiel paints 30 yards of the road. "Only 30!" shouts his boss. "That's unacceptable! On the first day you did ten times that mu
^ that's the algo TL;DR;
 
lol
is that good or bad?
 
lol bad
> "I can't help it," says Shlemiel. "Every day I get farther and farther away from the paint can!"
 
I like to think I wrote the resolver with the mindset of "1 - make it work; 2 - make it fast; 3 - make it pretty". I'm at step 2 now :)
@Vogel612 I thought that was about the new solution!
 
@Mat'sMug no that's the old one...
 
3:30 PM
totally
I knew there was a horrible, horrible inefficiency in there, that needed to be fixed and could dramatically improve performance
I don't know why I waited so long to make that identifier dictionary
oh, yes, I know why
> 1. Make it work
it didn't work
 
CR mug <3
 
nice!
 
3:54 PM
> @retailcoder hmmm .. does not work for me .. i just rebooted and downloaded my example ;) after 6min it still says "Parsing". At least the unknown identifier output messages are gone completely.
> I think keeping track of these declarations by name is not in scope for the resolver. This class is IMO justified under SRP, soo...
> @Vogel612 you're right. Even better, it should be injected into the resolver as a dependency, so that the dictionary doesn't need to get created once per parse tree!
 
> How does a relational database implement SELECT author FROM books? In a relational database, every row in a table (e.g. the books table) is exactly the same length in bytes, and every fields is always at a fixed offset from the beginning of the row. So, for example, if each record in the books table is 100 bytes long, and the author field is at offset 23, then there are authors stored at byte 23, 123, 223, 323, etc. What is the code to move to the next record in the result of this query? Basically, it's this:
Interesting tidbit about RDBMS towards the bottom :)
 
5:18 PM
> The `Context` of the `IdentifierReference`, or its `Parent`, should point to a `complexType` parser rule (fortunately the parser rule types are nested classes, so the unfortunate naming is fine):

typeOfStmt : TYPEOF WS valueStmt (WS IS WS type)?;

type : (baseType | complexType) (WS? LPAREN WS? RPAREN)?;

baseType : BOOLEAN | BYTE | COLLECTION | DATE | DOUBLE | INTEGER | LONG | SINGLE | STRING | VARIANT;
complexType : ambiguousIdentifier (('.' | '!') ambiguousIdentifier
 
hey @Hosch250
 
> This is completely fixed in my branch because we do not create dialogs from the dockable control anymore.
 
Hi.
 
did you see the resolver fix?
 
I saw you had done it, but I haven't opened my IDE yet.
 
yeah
RD 2.0 totally deserves its new "major" digit now :)
2
 
@PinCrash awesome!
 
-1
Q: Excel VBA -- If Conditional Formatting Color = x, Display Output Y in different cell

user99282I have a dataset with approximately 100 conditional formatting rules, which when triggered cause a cell to become shaded red. I am trying to create a VBA function that outputs the word, "FALSE" in an empty cell (say A2) when the conditional formatting in a filled cell (say A1) is the color Red....

 
5:39 PM
@Mat'sMug @RubberDuck
@nulltoken That worked! I had tried refs/heads/:branch_to_delete before, which didn't work, I didn't think of that option. Please post that as the answer. — Hosch250 10 secs ago
Deleting a remote branch worked.
 
nice!
 
@Hosch250 nulltoken knows his stuff.
 
He's the one who writes it, so I should hope so.
 
5:59 PM
interesting
how the heck does that happen?
0
Q: Remove multiple 'ThisWorkbook' modules from Excel VBA editor

ChrisWithin the VBA editor, I have found duplicate instances of the 'ThisWorkbook' module seen in this screenshot here. I would like to delete these extra instances, but do not know how. Btw, ThisWorkbook1 is now the system recognized module with all my Sheet numbers now having a 1 appended to the e...

 
@Mat'sMug code-name property?
or different sheet names?
 
I've never seen two Workbook instances in a VBA project, it's nonsense by definition...
his file is probably corrupted
 
[Hosch250/Rubberduck] Hosch250 pushed commit 40147f50 to BugBlipper: Delete branch button. Works for local and remote.
[Vogel612/TranslationHelper]‌​ Vogel612 pushed commit c04e66b7 to develop: Added documentation, as well as some other minor cleanups and FIXMEs
 
@Mat'sMug That must be a huge commit. Git is taking over a minute to process it.
 
0
A: Remove multiple 'ThisWorkbook' modules from Excel VBA editor

Mat's MugAn excel-vba Project is hosted in a Workbook... seeing two Workbook objects under a single project is very worrying - I'd suggest you export all modules and copy the sane worksheet/workbook code into a new file (I wouldn't even try to open the ghost copies), and destroy that one. Your project is...

 
6:08 PM
[Hosch250/Rubberduck] retailcoder pushed commit 83e74bd4 to BugBlipper: fixed FindAllReferencesCommand to not only search user declarations
[Hosch250/Rubberduck] retailcoder pushed commit de4fb119 to BugBlipper: fixes #1161 (does not address performance)
[Hosch250/Rubberduck] retailcoder pushed commit 89807b53 to BugBlipper: fixed & clarified FindAllReferencesCommand
[Hosch250/Rubberduck] retailcoder pushed commit edb6ce76 to BugBlipper: Completely unreal improvements to resolver performance (fixes #1166)
[Hosch250/Rubberduck] retailcoder pushed commit 57c7e68c to BugBlipper: fixed debug output wording
[Hosch250/Rubberduck] retailcoder pushed commit d99048cc to BugBlipper: fixed broken tests / exception in DeclarationFinder constructor
Merge pull request #1168 from retailcoder/CodeExplorer

Resolver performance fix
[Hosch250/Rubberduck] Hosch250 pushed commit 2ecf7676 to BugBlipper: Merge branch 'next' of github.com/rubberduck-vba/Rubberduck into BugBlipper
 
Source control is almost ready to be merged.
3
Just a few incomplete things left.
The least of which is NOT tests.
 
6:26 PM
The branches view needs to be completely reworked.
Most/all the grids/lists need to be reworked to have a toolbar.
 
6:37 PM
@Hosch250 did you notice any speedup with the resolver?
 
I never got that far. I stopped it while it was still compiling after a couple minutes.
 
compiling??
 
Parsing.
But yeah, it is beginning to take several seconds to compile over here.
 
[Vogel612/TranslationHelper] build for commit c04e66b7 on develop: The Travis CI build passed
 
 
2 hours later…
8:49 PM
@Mat'sMug Nice job on the resolver.
 
thanks :)
 
Now, I have two bugs to report.
 
and there's still even more room for improvement
oh
 
First:
 
suspense is killing me!
 
8:51 PM
Property Get foo(bar As Boolean) As String
End Property

Property Set foo(bar As Boolean, bat As String)
End Property
Renaming bar doesn't rename both bars.
Second, renaming Sheet1 doesn't deep-rename it anymore.
 
are those resolver bugs, or refactor/rename bugs?
 
Rename bugs.
 
if you have an instance of that class, do getter references resolve to the getter procedure, and setter references resolve to the setter procedure?
 
Not sure.
 
btw that setter is illegal
should be Property Let since String isn't an object type
 
8:54 PM
OK.
Same bug there, though.
 
does it work for normal, non-parameterized properties?
 
Does what work?
 
    Property Get Foo() As String
    End Property

    Property Let Foo(ByVal value As String)
    End Property
same bug?
 
Impossible.
The bug I'm talking about is renaming a parameter in both parts of the property.
There are no shared parameters in that property.
 
oh
I got confused
it would really help if you tested with legal code that looks more standard. I mean, it's good to test edge cases, but a parameterized getter is really just an indexer... and nobody indexes things with a boolean
 
8:58 PM
Property Get Foo(ByVal bloq As Boolean) As String
End Property

Property Let Foo(ByVal bua As Boolean, ByVal value As String)
End Property
 
but now I understand
 
That is what I'm talking about.
 
ok
does it compile?
I think all that matters is that the types match in the signature
 
Not with different names.
This does compile:
Property Get Foo(ByVal bloq As Boolean) As String
End Property

Property Let Foo(ByVal bloq As Boolean, ByVal value As String)
End Property
 
ok
do we have an issue for that one?
 
9:00 PM
No idea.
I know I've mentioned it before.
 
now there's one
 
> Renaming the `index` parameter of a parameterized property:

Property Get Foo(ByVal index As Integer) As String
End Property

Property Let Foo(ByVal index As Integer, ByVal value As String)
End Property

Does not rename the parameter in all accessors, which breaks the code:

Property Get Foo(ByVal renamed As Integer) As String
End Property

Property Let Foo(ByVal index As Integer, ByVal value As String)
End Property
 
we'll go over all issues prior to releasing anyway, if there's a dupe we'll find it
 
So, what about this one?
16 mins ago, by Hosch250
Second, renaming Sheet1 doesn't deep-rename it anymore.
Oh. NVM.
I seems to work again.
Maybe I already fixed that one when I redid the commands for Rename.
 
9:22 PM
> Resolve the TypeInfos, and then #1093 become easy.
 
4
Q: Hide MS VBA screen in Excel 2010

ClauricI work in an office where we have a number of amateur Excel "experts", who are constantly trying to "improve" (i.e. shortcut, change the logic, rewrite to make "faster") the spreadsheets. As I work in a very regulated world, where macros need to be approved by the company, the clients, and the re...

Another admin thinking VBA is/should be secure.
 
very nice answer there
 
I was tempted to link to the SO answer for hooking the Project Password dialog, to show him how trivial the protection is.
 
lol, I have that code in a pinned workbook here, named "CrackerJack.xlsm"
besides, it's already listed in the "related posts" list in the sidebar
 
Hooking it? You mean getting the keypresses from it an stealing the password?
 
9:36 PM
no
 
No, hooking it and returning true. No dialog ever appears.
 
> @Pitterling I wonder if combining the parse tree listeners into one would help speed up the parsing... thing is, the parsing step is really the most resource-intensive part, and there's not much *we* can do to make it happen faster, since the parser is generated by ANTLR off the grammar.

We need to get an `IParseTree` from the ANTLR parser for every code module in the project; the time it takes to process a code module is directly proportional to the length of the code, and the complexity o
 
267
A: Is there a way to crack the password on an Excel VBA Project?

Đức Thanh NguyễnYou can try this direct VBA approach which doesn't require HEX editing. It will work for any files (*.xls, *.xlsm, *.xlam ...). Tested and works on Excel 2007 Excel 2010 Excel 2013 - 32 bit version. Excel 2016 - 32 bit version. Looking for 64 bit version? See http://stackover...

 
That. Is. Evil.
 
I call it brilliant
especially useful for when you need to modify a macro that was written 10 years ago by someone that's long gone and nobody knows what the frakkin' password is
 
9:47 PM
VBA is so stupid.
Or is it the VBE, or Office?
 
not sure
the VBE I'd say
Office is just a host implementation
and VBA is just a spec
so, the VBE
 
10:02 PM
Woohoo Outlook spam time again
> Error with SQL Adapter: 0 a <Ens>ErrOutConnectFailed0 ERROR #6022: Gateway failed: DSN/User Connect. ODBC '' / ''
X 100
 
Hi Guys - I stumbled across this last night (I'm in Australia) and absolutely love it - I was searching for VBA version control... right now I use BitBucket and export all my VBA at the Module level, I have export macros to do all that for me but overall it is still quite manual.
Ok - enter = send.... just wanted to say THANK YOU - this is a great project and I hope that I may be able to contribute (I'm a bit of a noob, hope that's ok)
4
 
It's ok to be noob, all of us still are noob at some things, that's why we're here to learn :)
 
@ThunderFrame So not sure if you have seen this tool decalage.info/python/olevba it lets you extract all code from locked VBA projects without opening the file in office. Another way is to open the file in Open Office and yet another way, as mentioned, is to (this is the Hex Edit) change a key 'DPB=' to 'DPx='
Thanks :-) Is there somewhere I can read up on the rubberducking protocols for:
- reporting issues
- contributing to Wiki / help files
- correct use of the version control (I'm stupidly new to version control, my own has 1 branch because that's all my feeble mind can cope with at the moment
 
10:17 PM
@Mat'sMug ^^ can best answer this
(I'm not a contributor myself, I just come here to bug them when I write VBA and it doesn't work right, which is pretty much any time I write VBA)
 
hi @SlowLearner!
I definitely need to spend less time coding and more time writing documentation (huh, is that right??)...
we've removed restrictions on the project's wiki, so anyone can edit the content and they're welcome to do so
 
@Mat'sMug hey, looking fwd to next iteration of source control. Documentation, yes - true (don't we all?)

I tried to edit last night, the Unit testing Wiki, because I sat there for like 30 minutes trying to figure out why Assert.IsTrue would pass every test... eventually I realised that I need to run the test from the UI and NOT from directly from the code.... (rookie error) but I was figuring I'd add it to the Wiki - all I could seem to edit was the footer :-/
 
hmm
you could always create an issue about the wiki (we have a label we're using for that), if you feel something needs to be clarified
ideally you'd browse the list of issues before making a new one, especially if it's about 1.4.3 - we're getting closer to releasing 2.0 now, and pretty much every known issue of 1.4.3 has been nailed... ...I think.
we're shooting for early May release for 2.0; there's still lots of work ahead
don't be afraid to edit the wiki, or even to create new pages - our chat bot feed picks up all the changes and we can review them
 
0
Q: Using non-explicit return values to simplify code

teepeeI have the following function and want to simplify the code to make it more readable by eliminating redundant lines: Function AddSheet(shtName As String, Optional readOnlyFlag As Boolean = True) As Boolean 'Add new worksheet to current workbook at the end If readOnlyFlag And IsSheet(shtNam...

 
Cool - I'll look into and see what I can figure out... looking forward to May! I gotta head out so catch you later.
 
10:33 PM
later! and come back anytime!
(and hey, star us on git hub!)
 
0
Q: Will omitting "ThisWorkbook" object cause ambiguity in default values for "Sheets"?

teepeeI have this block of code that uses a With statement to apply to the Sheets object three times: With ThisWorkbook .Sheets.Add(After:=.Sheets(.Sheets.Count)).Name = shtName End With I am wondering, if for readability (here and in other places) can I write it as such: Sheets.Add(After:=Shee...

 

« first day (636 days earlier)      last day (2544 days later) »