Hey Robert,
Regarding having to enumerate all columns when copying a row with AddRow()
— I totally feel your pain. I logged a request a while ago:
I have the same need at the moment (make snapshots of a table with dozens of columns), and the only way I see to make it easier is to grab the table, copy it into a text editor, and with some find/replace/regex magic compose a formula out of it.
Re your button formula, what you can do is combine the ModifyRows+AddRow in a single action:
thisRow.ModifyRows(thisRow.LogAddress, TheLog.AddRow(
Log.Datapoint1, thisRow.[Datapoint 1],
Log.Datapoint2, thisRow.Datapoint2,
Log.Datapoint3, thisRow.Datapoint3
))