谷歌作業表鏈接
我當前的代碼僅將資料(來自頂部和最左側的藍色表格)復制到第一個可用行中的不同作業表中,但我希望將其復制到同一個作業表(“V / MA”)中并從某個位置開始行(“A63:J80”)(也標識為第二個底部藍色表)。
function moveValuesOnly () {
var ss = SpreadsheetApp.getActiveSpreadsheet ();
var source = ss.getRange ("V / MA!A4:J21");
var destSheet = ss.getSheetByName("V / MA results");
// Determine the location of the first empty row.
var destRange = destSheet.getRange(destSheet.getLastRow() 1,1);
source.copyTo (destRange, {contentsOnly: true});
source.clear ();
}
以及即使使用此當前代碼我遇到的另一個問題是邊框被洗掉并且粘貼的資料不遵循我在粘貼資料的表中指定的預期格式。
這個腳本應該在點擊我已經創建的按鈕時被觸發。它從表 ("A4:J21")(頂部和最左側的藍色表)中復制資料。
這兩個表具有相同的格式和邊框,所以請告訴我應該如何更改代碼,以及如何阻止邊框被清除。
uj5u.com熱心網友回復:
我相信你的目標如下。
- 從
My current code only copies the data (coming from the top and leftmost blue table) into a different sheet in the first available row, yet I want it to be copied into the same sheet ("V / MA") and starting at a certain row ("A63:J80") (also identified as the second bottom blue table).你想的范圍復制A4:J21到A63:J80在同一張紙上V / MA。 - 您不想清除單元格的邊界。
在您的情況下,我認為此示例腳本可能有用。此示例腳本可以從作業表底部檢索第 1 個非空行。當這個腳本用于你的腳本時,它變成如下。
修改后的腳本:
function moveValuesOnly() {
// This sample script is from https://stackoverflow.com/a/44563639/7108653
Object.prototype.get1stNonEmptyRowFromBottom = function (columnNumber, offsetRow = 1) {
const search = this.getRange(offsetRow, columnNumber, this.getMaxRows()).createTextFinder(".").useRegularExpression(true).findPrevious();
return search ? search.getRow() : offsetRow;
};
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("V / MA");
var source = sheet.getRange("A4:J21");
var row = sheet.get1stNonEmptyRowFromBottom(1);
var destRange = sheet.getRange(row 1, 1);
source.copyTo(destRange, { contentsOnly: true });
source.clearContent();
}
- 當運行該腳本,范圍
A4:J21被復制到A63:J80在相同的片材V / MA。并且,范圍的內容A4:J21被清除。 - 為了只清除內容,您可以使用
clearContent(). 當clear()被使用時,邊框將被清除。我認為這可能是您的問題的原因。您也可以使用clear({contentsOnly: true})代替clearContent()。 - 當您想通過按鈕運行此腳本時,請
moveValuesOnly為按鈕指定函式名稱。
參考:
- 清除()
- 清除內容()
- 清除(選項)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/325129.html
