स्प्रैडशीट में पंक्तियों को संपादित करते समय डाक टिकट


0

मेरे पास एक स्प्रैडशीट है, जिसे उस पंक्ति के भीतर कक्षों में किए जा रहे परिवर्तनों के होते ही प्रत्येक पंक्ति के लिए दिनांक मोहर की आवश्यकता होती है। उदाहरण के लिए, मैं सेल B14 या E14 या G14 पर कुछ बदलता हूं और आज की तारीख K14 पर दिखाई देती है। जाहिर है, मुझे उन पंक्तियों और स्तंभों की श्रेणी चुनने में सक्षम होना चाहिए जो प्रभावित होने जा रहे हैं।

हालांकि, मेरे मामले में जटिल सा है कि मैं आज की तारीख की जरूरत है प्रकट करने के लिए है ही , जब मैं जोड़ने या बदलने के सेल में जानकारी। यदि मैं सेल से सिर्फ जानकारी हटाता हूं तो मुझे जानकारी हटाने से पहले उसी तिथि को रहने की आवश्यकता है।

PS फ़ाइल एक एक्सेल स्प्रेडशीट है, लेकिन इसका उपयोग Google डिस्क पर किया जाएगा।


1
"Google डिस्क पर इसका उपयोग किया जाएगा" से आपका क्या अभिप्राय है? क्या आप इसे Google पत्रक प्रारूप में परिवर्तित करेंगे या आप Office संगतता मोड का उपयोग करेंगे?
रुबैन

चूंकि यह एक एक्सेल फाइल के लिए है, इसलिए इससे कोई फर्क नहीं पड़ता कि आप इसे कहां स्टोर करते हैं। Microsoft Excel यहाँ ऑफ विषय है। यह सुपर यूजर से पूछा जाना चाहिए ।
इल

जवाबों:


1

यह उत्तर है यदि आप सीधे Google शीट पर जाते हैं।

मुझे लगता है कि इससे आपको सही दिशा में जाने में मदद मिलेगी। अगर आप कह रहे हैं कि मैं यह स्पष्ट नहीं कर रहा हूँ कि आप जिन क्षेत्रों की निगरानी कर रहे हैं, उन्हें शीट के चारों ओर छिड़का हुआ है, या यदि आपके द्वारा संदर्भित गैर-आसन्न सेल एक सीमा के अंदर केवल उदाहरण थे। यदि आपके पास चारों ओर छींटे हैं, तो आपको कई "वॉच रेंज" बनाने की संभावना होगी, जैसा कि मैंने कोड में नोट किया है, और जांचें कि सेल को संपादित किया जा रहा है कम से कम एक सीमा के अंदर, अन्यथा फ़ंक्शन से बाहर लौटें।

मैं यह नोट करना चाहता हूं कि मैं एक मल्टी-सेल रेंज से सभी मूल्यों को हटाने के लिए इस काम को करने के लिए अतिरिक्त लंबाई तक नहीं गया था।

इसके अलावा, ध्यान दें कि आपको Google शीट के अंदर टूल्स -> स्क्रिप्ट एडिटर में जाना होगा, और फिर रिसोर्स -> ट्रिगर (मेन्यू अलग हो सकता है कि आपने पहले वहां क्या किया है) और "onEdit ()" ट्रिगर जोड़ें टू द शीट।

फिर, आपका फ़ंक्शन कुछ इस तरह से जाएगा

function onEdit(e){
  var DateCol = "K";
  var DeletedColNote = "L";
  var curDate = Utilities.formatDate(new Date(), "GMT-5", "MM/dd/yyyy") 
  var editRange = e.range;
  var rowIndex = editRange.getRowIndex();
  var colIndex = editRange.getColumnIndex();

  // May need to set up multiple ranges like this and check all ranges if
  // checked fields are not in adjacent cells
  var watchRange = { // B2:G20
    top : 2,         // start row
    bottom : 20,     // end row
    left : 2,        // start col
    right : 7        // end col
  };
  // Exit if we're out of range
  if (rowIndex < watchRange.top || rowIndex > watchRange.bottom) return;
  if (colIndex < watchRange.left || colIndex > watchRange.right) return;

  var currentValue = editRange.getValue();
  currentValue = currentValue.replace(/^\s+|\s+$/g,""); //"trim" kludge

  if (currentValue.length == 0)
  {
    // Set a column to show when data was deleted
    SpreadsheetApp.getActiveSheet().getRange(DeletedColNote + rowIndex).setValue("Deleted: " + curDate);
  }
  else
  {
    // Set a column to show last edit date
    SpreadsheetApp.getActiveSheet().getRange(DateCol + rowIndex).setValue("Edited: " + curDate);
    SpreadsheetApp.getActiveSheet().getRange(DeletedColNote + rowIndex).setValue("");
  }
}

1

दुर्भाग्य से, VBA Google शीट में पोर्ट नहीं करता है, लेकिन यदि Google शीट की आवश्यकता को माफ कर दिया गया है, तो VBA के साथ करना काफी सरल है।

इस कोड को ब्याज की वर्कशीट के लिए WorkSheet_Change घटना में संलग्न करें ...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim RngToMark As Range
' define the range you want to track changes for
    Set RngToMark = ActiveSheet.Range("A1:G30")
' make sure the change occurred inside the range
    If Intersect(Target, RngToMark) Is Nothing Then Exit Sub
' ignore deleting the contents
    If Target.Value = "" Then Exit Sub
' mark the row as changed
    ActiveSheet.Range("K" & Target.Row).Value = Format(Now(), "MMM-DD-YYYY")

End Sub

इसे सम्मिलित करने के लिए सही स्थान प्राप्त करने के लिए ...

  1. VBEditor में, "Microsoft Excel ऑब्जेक्ट्स" के तहत वर्कशीट के नाम पर डबल क्लिक करें
  2. फिर बाएं हाथ से नीचे की ओर वर्कशीट चुनें
  3. फिर राइट हैंड ड्रॉप डाउन से चेंज चुनें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.