質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

2522閲覧

指定セル範囲をコピーして別シートの最終行に値・数式も含めて貼り付けしたい

km4k

総合スコア11

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2019/07/14 09:13

前提・実現したいこと

Google Apps ScriptでsheetAの現在の選択しているセル行を取得し
選択行のA:Tの値をコピーしてsheetBの最終行のA:Tに
sheetA>A:Tの元の書式を保持(値・数式)したままも貼り付けしたいです。

発生している問題・エラーメッセージ

sheetAのR:T列は関数が設定されているのですが、
sheetBへの貼り付けを実行すると値で貼り付けされてしまいます。
元の書式を保持(値・数式)したままも貼り付けするにはどこをどう修正すればよいでしょうか?

Google Apps Scriptははじめたばかりで知識不足のためご教示いただけますと幸いです。

該当のソースコード

function copy()
{
//sheetAの現在の選択しているセル行を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet_copyFrom = ss.getSheetByName('sheetA');
var objCell = sheet_copyFrom.getActiveCell();
var ar = objCell.getRow();

 // コピー先の最終行を取得
var sheet_copyTo = ss.getSheetByName('sheetB');
var lastRow = sheet_copyTo.getLastRow();
var lastRow1 = lastRow + 1;

 // コピー範囲の値を取得し、対象範囲へ転記
var copyValue = sheet_copyFrom.getRange('A'+ar+':T'+ar).getValues();
sheet_copyTo.getRange('A'+lastRow1+':T'+lastRow1).setValues(copyValue);
}


気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SHOMI

2019/07/14 12:19

ソースコードは<code>ボタンを押して```で挟まれたところに記述してください。
guest

回答1

0

ベストアンサー

数式ならgetFormulas()setFormulas()ではないでしょうか。

(追記)
試してみたところ、copyTo()で値も数式もコピーできました。

var rangeToCopy = sheet_copyFrom.getRange('A'+ar+':T'+ar); rangeToCopy.copyTo(sheet_copyTo.getRange('A'+lastRow1+':T'+lastRow1));

投稿2019/07/14 12:02

編集2019/07/14 12:42
SHOMI

総合スコア4079

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

km4k

2019/07/14 13:48

SHOMI様 ありがとうございます。 copyTo() で想定通りの動きになりました。 ベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問