2014-05-05 6 views
5

पर आधारित है, मैं Google स्क्रिप्ट के लिए नया हूं और मुझे वर्तमान सक्रिय शीट को एक नई शीट में कॉपी करने की आवश्यकता है और फिर सेल शीट के आधार पर इस शीट का नाम बदलें। मेरा मुद्दा यह है कि सेल वैल्यू एक तिथि है और नीचे कोड काम करता है लेकिन 30-मई -2014 को शीट का नाम बदलने पर यह संख्यात्मक समकक्ष 4178 9 लौटा रहा है। मैं वास्तविक तिथि कैसे पेस्ट कर सकता हूं।चादर और नाम की प्रतिलिपि बनाने और नाम बदलने के लिए Google स्क्रिप्ट एक सेल संदर्भ

function CreateNewTimesheet() { 

    // The code below makes a duplicate of the active sheet 
    var ss = SpreadsheetApp.getActiveSpreadsheet() 
    SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet(); 

    // The code below will rename the active sheet to Month End date based on cell O3 
var myValue = SpreadsheetApp.getActiveSheet().getRange("O3").getValue(); 
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(myValue); 

} 

उत्तर

0

आपको एक नई तिथि (myValue) बनाने की आवश्यकता है, फिर दिनांक स्वरूपण फ़ंक्शन के लिए उपयोगिता वर्ग देखें।

+0

मैंने निम्नलिखित परिवर्तन किए हैं, और शीट का नाम बदलकर प्रारूप प्रारूप में बदला जा रहा है लेकिन इसकी एक अलग तारीख है। सेल 30 मई 2014 के रूप में प्रदर्शित होता है। शीट का नाम बदलकर 2014-05-08 किया जा रहा है। मैं क्या गलत कर रहा हूं? फ़ंक्शन CreateNewTimesheet() { // नीचे दिया गया कोड सेल ओ 3 var myValue = नई तिथि (SpreadsheetApp.getActiveSheet() .getRange ("O3") के आधार पर सक्रिय समाप्ति तिथि का नाम बदल जाएगा। getValue); var formattedDate = Utilities.formatDate (नई तिथि(), "जीएमटी", "yyyy-MM-dd"); स्प्रेडशीटApp.getActiveSpreadsheet()। RenameActiveSheet (स्वरूपितडेट); } – user3604137

+0

वेब प्रारूपों के बारे में वेब पर पढ़ें। आप "yyyy-MM-dd" का उपयोग कर रहे हैं –

2

आपको मूल्य को स्ट्रिंग में प्रारूपित करने और फिर नाम सेट करने के लिए इसका उपयोग करने की आवश्यकता होगी।

var localTimeZone = "Europe/London"; 
var dateFormatForFileNameString = "yyyy-MM-dd'at'HH:mm:ss"; 

function CreateNewTimesheet() { 

    // The code below makes a duplicate of the active sheet 
    var ss = SpreadsheetApp.getActiveSpreadsheet() 
    SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet(); 

    // The code below will rename the active sheet to Month End date based on cell O3 
var myValue = SpreadsheetApp.getActiveSheet().getRange("O3").getValue(); 
var dateString = getDateString_(myValue); 
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(dateString); 
} 

//Function to get Date as a string 
function getDateString_(dateValue) { 
     return Utilities.formatDate(dateValue, localTimeZone, 
            dateFormatForFileNameString); 
} 

आशा है कि मदद करता है।

0

बस अपने कोड में .getValue() के स्थान पर .getDisplayValue() का उपयोग करके चाल चलनी चाहिए।

यह सेल में एक स्ट्रिंग के रूप में प्रदर्शित मूल्य प्राप्त करता है, जो तिथि स्वरूपण जैसी चीजों को ध्यान में रखता है, इसलिए जब आप अपने शीट का नाम बदलने के लिए इसका उपयोग करते हैं तो चादर का नाम आपके सेल में जो दिखाई देता है, वही होगा।

संबंधित मुद्दे