私が行った調査によると、デフォルトで日付ピッカーを Google スプレッドシートの空のセルに入力する方法はないようです。日付ピッカーがポップアップするためには、セルにすでに日付が含まれている必要があります。スクリプトに関しては、私は非常に環境に配慮しています。ほとんどの用語を理解していますが、どこから作成を開始すればよいかわかりません。誰か助けてくれませんか?特定の列のすべてのセルに日付ピッカーを入力したいと思います。
1087 次
2 に答える
1
WebApps の Google スプレッドシートに日付ピッカーを追加することを指摘するつもりでしたが、見つかりました。
ご指摘のとおり、日付ピッカーは、セルに有効な日付がある場合にのみ表示されます。また、datepicker ウィジェットをプログラムで制御することもできません。
この関数は、任意の範囲内のすべてのセルを同じデフォルト値で埋めます。その値は、スプレッドシートでサポートされている任意のタイプにすることができます。
/**
* Fill a range with a default value.
*
* @param {Range} rangeFill A spreadsheet range to be filled
* @param {Object} value The default value to fill the range with
*/
function rangeDefault( rangeFill, value ) {
// Fill a two-dimensional array with default values
var defaults = [[]];
// Dimension the array to match the input range
var height = rangeFill.getLastRow() - rangeFill.getRow() + 1;
var width = rangeFill.getLastColumn() - rangeFill.getColumn() + 1;
for (var row=0; row < height; row++ ) {
defaults[row]=[];
for (var col=0; col < width; col++ ) {
defaults[row][col] = value;
}
}
// Fill the range with the array contents.
rangeFill.setValues(defaults);
}
スプレッドシートで使いやすくするために、ここにメニュー機能があります。塗りつぶしたい範囲を選択し、「カスタムメニュー」から「日付入力」を選択するだけで、選択範囲が今日の日付で塗りつぶされます。
/**
* Menu function - fill the currently selected range with today's date.
*/
function dateFill() {
var today = new Date();
var defaultDate = new Date( today.getFullYear(), today.getMonth()+1, today.getDate() );
rangeDefault( SpreadsheetApp.getActiveSpreadsheet().getActiveRange(), defaultDate);
}
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Date Fill",
functionName : "dateFill"
}];
sheet.addMenu("Custom Menu", entries);
};
于 2013-05-01T17:21:01.267 に答える