我為游戲中的地產代理創建了一個谷歌表。
第一個選項卡“Residential Appraisal”是資料輸入表單,單擊按鈕后,我希望將輸入的資料 (C16:C56) 存檔在下一個可用行的“Residential Appraisal Archive”中。
粘貼資料時,需要將其粘貼為轉置和僅值(由于公式)。
我對事物的腳本方面很陌生,并試圖自己弄清楚,但沒有任何說明。請在下面找到該表的鏈接。
https://docs.google.com/spreadsheets/d/1BF4Ao8L7FfitZFGX7QDfqbthmiu2A7CKXuJw0Av-0jY/edit?usp=sharing
代碼:
function Reset_Residential() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('C16:C20').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C22').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C23').activate();
spreadsheet.getCurrentCell().setValue('10');
spreadsheet.getRange('C24').activate();
spreadsheet.getCurrentCell().setValue('Undetermined');
spreadsheet.getRange('C28:C38').activate();
spreadsheet.getActiveRangeList().check();
spreadsheet.getActiveRangeList().uncheck();
spreadsheet.getRange('C39:40').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C45').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C50').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C52').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
};
function Reset_Buisness() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('C16:C21').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C23').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C24').activate();
spreadsheet.getCurrentCell().setValue('10');
spreadsheet.getRange('C25').activate();
spreadsheet.getCurrentCell().setValue('Undetermined');
spreadsheet.getRange('C26').activate();
spreadsheet.getCurrentCell().setValue('Please Select');
spreadsheet.getRange('C30:C31').activate();
spreadsheet.getActiveRangeList().check();
spreadsheet.getActiveRangeList().uncheck();
spreadsheet.getRange('C32:C33').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C38').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C43').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('C45').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
};
function jumpToFirstEmptyBasic() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Appraisal Archive"); // << Change the sheet name to your own sheet.
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow 1,1).activate();
}
function Residential_Archive() {
const ss = SpreadsheetApp.getActive();
const sourceRange = ss.getRange('Residential Appraisal!C16:C56');
const targetRange = ss.getRange('Results Historic!' ss.getRange('Audit correction!Y3').getValue());
sourceRange.copyTo(targetRange, SpreadsheetApp.CopyPasteType.PASTE_VALUES, true);
showMessage_('Values copied.');
}
uj5u.com熱心網友回復:
我相信你的目標如下。
- 您想將“住宅估價”表的單元格“C16:C56”中的值復制到“住宅估價檔案”表中。此時,您只想復制值而不包括公式。
- 您希望在單擊按鈕時運行腳本。
當我看到你的“住宅估價”和“住宅估價檔案”的表格時,我可以確認“住宅估價”的單元格“C16:C56”,我也確認了“住宅估價檔案”表格有空欄“F”、“J”、“L”、“Z”、“AF”和“AH”。在這種情況下,我認為可以直接從單元格“C16:C56”中檢索值并將它們復制到目標作業表中。
而且,我注意到在您的電子表格中,有 2 對源表和目標表。
- 源表:“住宅評估”,目標表:“住宅評估檔案”
- 源表:“商業評估”,目標表:“商業評估檔案”
我認為您可能希望將這個腳本用于上述 2 對。所以在這個答案中,我想提出一個可以使用這 2 對的示例腳本。
示例腳本:
請將以下腳本復制并粘貼到電子表格的腳本編輯器中。并且,請在“住宅估價”和“商業估價”表上的“存檔”按鈕上指定“樣本”的功能名稱。這樣,當您單擊“住宅估價”處的按鈕時,這些值將復制到“住宅估價檔案”表中。并且,當您單擊“商業評估”中的按鈕時,這些值將復制到“商業評估檔案”表中。
function sample() {
const obj = [
{srcSheetName: "Residential Appraisal", dstSheetName: "Residential Appraisal Archive"},
{srcSheetName: "Buisness Appraisal", dstSheetName: "Buisness Appraisal Archive"}
];
const ss = SpreadsheetApp.getActiveSpreadsheet();
const currentSheet = ss.getActiveSheet().getSheetName();
const sheet = obj.filter(({srcSheetName}) => srcSheetName == currentSheet);
if (sheet.length == 0) return;
const src = ss.getSheetByName(currentSheet);
const dst = ss.getSheetByName(sheet[0].dstSheetName);
src.getRange("C16:C56").copyTo(dst.getRange(dst.getLastRow() 1, 1), SpreadsheetApp.CopyPasteType.PASTE_VALUES, true);
}
筆記:
- 如果您不想在“Buisness Appraisal”表中使用此腳本,請從“Buisness Appraisal”表上的按鈕中洗掉函式名稱。
參考:
- 復制到(目的地,復制粘貼型別,轉置)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/369226.html
上一篇:找出打開谷歌表單的位置
