こちらのページ下部の長いコードは適切にコピペすればうまく始動してくれます。
https://developers.google.com/sheets/api/quickstart/android

この長いコードをMainActivityに入れてあり、レイアウトをこっちで設定して「button1を押したらシート1のB21に書き込む」ようなことはできました。

それはonCreateメソッドにGoogleAPI認証コードを取得するための

mService = new com.google.api.services.sheets.v4.Sheets.Builder(
        transport, jsonFactory, credential)
        .setApplicationName("Google Sheets API Android Quickstart")
        .build();

を実行することによって可能になります。そして上の変数mServiceを作るために様々なメソッドを呼び出しており、それらのメソッドはthis(MainActivityのみ)にしか使えないようになっています。

MainActivity→SubActivityに遷移はIntentを使ってデータを投げれるので問題ありませんが、SubActivityの状態からmServiceなど使ってGoogleAPIを通し、セルにデータを書き込むにはどうすればよいでしょうか?

SubActivityからIntentを使ってのonCreateは不可能でした。
またMainActivityは最初に起動するActictivityなのでGetIntentが成り立ちません。

MainActivity ma = new MainActivity();
ma.getResultsFromApi(0);

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: kanri.kintai, PID: 24031
                  java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference
                      at android.content.ContextWrapper.getPackageManager(ContextWrapper.java:91)
                      at com.google.android.gms.common.zzo.isGooglePlayServicesAvailable(Unknown Source)
                      at com.google.android.gms.common.zze.isGooglePlayServicesAvailable(Unknown Source)
                      at com.google.android.gms.common.GoogleApiAvailability.isGooglePlayServicesAvailable(Unknown Source)
                      at kanri.kintai.MainActivity.isGooglePlayServicesAvailable(MainActivity.java:272)

上記エラー出力の一番下の行のエラー(272行目)

private boolean isGooglePlayServicesAvailable() {
    GoogleApiAvailability apiAvailability =
            GoogleApiAvailability.getInstance();

    // 272行目
    final int connectionStatusCode =
            apiAvailability.isGooglePlayServicesAvailable(this);

    return connectionStatusCode == ConnectionResult.SUCCESS;
}