You'll need to state what client, what version etc you are using.
I am pretty sure that 10+ years ago before I joined 4Js, what you described work, as we looked to use this as a means for Accountants to determine their budgets etc in Excel, and then copy and paste their account codes and values into an INPUT ARRAY, or similarly for data migration purposes. The key being that the INPUT ARRAY has to be vanilla with no code to do NEXT FIELDs etc. Any validation can only be in the AFTER INPUT.
A quick test using GDC on my Mac suggests that it pastes into the next field correctly ie handles the ASCII(9), but doesn't do the next row ASCII(13)correctly. I'll have to have a longer play on some old versions and see if my memory is correct. Using GBC it looks like ASCII(9) is pasted as a literal tab
You should also note that with GDC you could use the cbget front-call to read the clipboard buffer and base.StringTokenizer using ASCII(13) and ASCII(9) e.g.
DEFINE s STRING
DEFINE tok1, tok2 base.StringTokenizer
DEFINE line STRING
CALL ui.Interface.frontCall("standard","cbget",[], s)
LET tok1 = base.StringTokenizer.createEXt(s,ASCII(13), NULL, TRUE)
WHILE tok1.hasMoreTokens()
DISPLAY "New Row ..."
LET line = tok1.nextToken()
LET tok2 = base.StringTokenizer.createExt(line,ASCII(9), NULL, TRUE)
WHILE tok2.hasMoreTokens()
DISPLAY tok2.nextToken()
END WHILE
END WHILE
so you could get something that will work if you were prepared to add an ON ACTION pastespecial, and explicitly parse the clipboard into the array variable
Reuben