Primarily tested in Pokemon Emerald, but I see no reason why this wouldn't work in every pokemon game (I'll list them below for search engine's sake)
Steps:
Optional step #0: Copy your save game file and put it somewhere safe just in case. I had no issues, but I'm a bit paranoid so I did this XD
Step #1: Open up VBA-M 2.1.4 twice
Step #2: Make sure Options --> Link --> Link at Boot is CHECKED
Step #3: Make sure Emulation --> Pause when inactive is UN-checked
Step #4: Load the game on both
(using either the same save file or different save files is perfectly fine. You can even start a new game on the 2nd instance and get a different starter pokemon plus another [need at least 2 to start a trade] to trade to yourself)
Step #5: head upstairs in the pokemon center on both games (don't initiate the conversation yet, just be in position)
Step #6: In one of the 2 VBA emulators go to Options --> Link --> Start Network Link
Step #7: Check Server and 2 players, and hit start
Step #8: In the 2nd VBA emulator, go to Options --> Link --> Start Network Link
Step #9: This time check Client and hit Connect
Step #10: Interact with the trading lady and trade some pokemon!
I just tested the steps above and it was done with Options --> Link --> Type --> Cable, though I did it with Wireless before and it also worked.
If you're looking to trade with your brother or some such, I imagine you could just email him your save file, have him open it in the 2nd vba, trade, save over it, and email it back. NOT tested though so be careful if you try. 100% do option 0 where you retain a copy of your non-messed-with save file.
For the Search Engine:
Pokemon Gold Pokemon Silver
Pokemon Ruby Pokemon Sapphire Pokemon Emerald
Pokemon Diamond Pokemon Pearl
Pokemon Black Pokemon White
Alakazam
Machamp
Gengar
Starter Pokemon all 3 all three
Trade pokemon