I think it depends on the time sequence of which field gets populated first. If the other field is not populated before the macro is been evaluated, then you won't get any data.
I worked with similar case before, e.g. there is a username field, and it should be combined with data from first and last name field automatically. We end up writing a custom method using event handler to populate that field upon save/update.