function initializeData(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_view");
var selectedCell = SpreadsheetApp.getActiveRange();
var selectedMake = ss.getRange(2, 1).getValue();
var selectedModel = ss.getRange(2, 2).getValue();
var selectedYear = ss.getRange(2, 3).getValue();
var selectedTrim = ss.getarange(2, 4).getvalue();
var cars_raw = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_raw");
// I think this is where I should be getting finale range or changing selected row to variable
var trims = [];
var carData = getCarData();
for (var i = 0; i < carData.length; i++) {
var row = carData[i];
var make = row[0];
var model = row[1];
var year = row[2];
var trim = row[3];
var data = row[$];// this is not a drop down
if (trim == "") {
continue;
}
if (make == selectedMake && model == selectedModel && year == selectedYear && trim == selectedTrim /* && data.indexOf(data)== -1*/) {
data.push(data);
}
}
// in case of no trims available
if (!trims.length) trims = ['N/A'];
}
function onEdit() {
Logger.log("onEdit()");
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var selectedCell = SpreadsheetApp.getActiveRange();
var cars_raw = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_raw");
Logger.log("Hello.");
if (sheet.getName() != "cars_view") {// changed sheet 7 to cars_view
return;
}
var selectedRow = selectedCell.getRow();
var selectedColumn = selectedCell.getColumn();
Logger.log("selected row=%s, column=%s", selectedRow, selectedColumn);
// Why does this below not start with 0 and go to 3;
if (selectedRow == 2.0) {
if (selectedColumn == 1.0) {
// make
initializeModels();
} else if (selectedColumn == 2.0) {
// model
initializeYears();
} else if (selectedColumn == 3.0) {
// year
initializeTrims();
} else if (selectedColumn == 4.0) {
initializeData();
}
}
Tek bir satıra giden dinamik bir açılır liste oluşturdum; Bu satırı nasıl bir değişken yapabilirim?
cevap
sadece cars_view
tabakanın A6:D6
için cars_raw
sayfasından değerleri Ex:Hx
kopyalamanız gerekir. Ben de getCarData
fonksiyon
function onEdit(e) {
var source = e.source;
var sheet_name = source.getSheetName();
var range = e.range;
var cars_raw = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_raw");
if (sheet_name != "cars_view") {
return;
}
var selectedRow = range.getRow();
var selectedColumn = range.getColumn();
Logger.log("selected row=%s, column=%s", selectedRow, selectedColumn);
if (selectedColumn == 4 && selectedRow == 2) {
initializeData();
}
}
aşağıdaki gibi setValues
yöntem sınıf Range
ait kullanabilmesi için
function initializeData(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_view");
var selectedCell = SpreadsheetApp.getActiveRange();
var selectedMake = ss.getRange(2, 1).getValue();
var selectedModel = ss.getRange(2, 2).getValue();
var selectedYear = ss.getRange(2, 3).getValue();
var selectedTrim = ss.getRange(2, 4).getValue();
var cars_raw = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_raw");
var trims = [];
var carData = getCarData();
for (var i = 0; i < carData.length; i++) {
var row = carData[i];
var make = row[0];
var model = row[1];
var year = row[2];
var trim = row[3];
var data = row[4];
var battery_info = row.slice(4);
if (trim == "") {
continue;
}
if (make === selectedMake && model === selectedModel && year === selectedYear && trim === selectedTrim)
{
var range = ss.getRange("A6:D6");
range.setValues([battery_info]);
break;
}
}
}
Ben onEdit
işlevini değiştirdik
function getCarData() {
var cars_raw = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("cars_raw");
return cars_raw.getSheetValues(3, 1, 5000, 8);
}
Tuhaf bir şey; A6 - D6, cars_view bilgisinden cars_view bilgisine günceller, ancak sadece script initializeData komutunu elle çalıştırdıktan sonra, daha sonra Trim'in son seçimini yaptığınızda. Bilgiyi tutarlı tutmak için battery_info'yu pil_size olarak değiştirdim. –
@JoshuaEcvHaislip: Hata ayıklama için her şeyi kaldırdım ve yukarıdaki kodla sona erdi. Benim için mükemmel çalıştı. Lütfen bunu deneyin. Bu cevabı faydalı bulsaydınız, –
cevabını kabul ediyorum Otomatik olarak yenilemek için bir satır ekledim, çünkü Döşeme çok fazla seçenek olmadığında güncellenmiyordu. –
- 1. Vim'deki tek bir satıra veya satır bloğuna nasıl yorum yapabilirim?
- 2. Bu satırlar tek bir satıra nasıl yerleştirilir?
- 3. UL listesi tek bir satıra nasıl çizilir?
- 4. ben bu açılır liste
- 5. Bir değişken URL'ye giden rota rotası
- 6. Başka bir alandan açılır liste
- 7. DataGridView: Tek bir hücre yerine tüm satıra nasıl odaklanılır?
- 8. Tek bir satıra birden fazla faktör nasıl transfer edilir?
- 9. Slamdata raporuyla bir açılır liste nasıl doldurulur
- 10. SQL'deki bir gruptan tek bir satırı tut?
- 11. Tüm dosya yerine tek bir satıra ödeme yapmak mümkün mü?
- 12. TinyMCE'de değişken düğmeleri olan bir akışkan araç çubuğu nasıl yapabilirim?
- 13. grid.arrange kullanarak değişken bir liste nasıl düzenlerim?
- 14. Birden çok satırı, bash stdout'ta bir satıra nasıl dönüştürebilirim?
- 15. Tek bir bağlamın liste tanımları
- 16. Bir ızgara görünümünde başka bir açılır listenin seçimine bağlı olarak bir açılır liste nasıl doldurulur?
- 17. Dinamik bir dizi öğelerinin tek tek silinmesi
- 18. Belirli bir satıra boşluk içeren sed boşluk satırı
- 19. Tek bir ifadede bir değerle birden fazla değişken karşılaştırın
- 20. Bir önceki satıra eşit değilse her satırı yazdırın
- 21. Evernote uygulamasında bunun gibi bir açılır menüyü nasıl yapabilirim?
- 22. Bir önceki satırı sql'de nasıl çıkarabilirim?
- 23. Gnome kabuk uzantısından bir komut satırı programına nasıl çağrı yapabilirim?
- 24. Izgara görünümünde bir açılır listeye nasıl bağlanılır?
- 25. Tek bir haritadaki birden fazla metin satırı
- 26. Doldur Açılır Liste Bu model Değer
- 27. Tek bir satırda tek bir karakter nasıl yazdırılır?
- 28. Javascript: Tek bir değişken kullanarak birden çok bağımsız değişkeni tek bir değişken olarak geçirme
- 29. Bir Python yumurtası oluşturdum; şimdi ne olacak?
- 30. Bir kutunun genişliğini kırıyorsa, metni yeni bir satıra nasıl taşıyabilirim?
https://docs.google.com/spreadsheets/d/13TorBfSBw8OtnWRKaF4hSVoCj28fIyd9roZORbyr7jU/edit#gid=896489113 –
Ne istediğinizden emin değilim. Sürecin ne olduğunu tanımlamanız gerekecek. Başlangıç noktası nedir? Beklenen sonuç nedir? –
Arka plan sayfası cars_raw, cars_view'i doldurmak için bilgileri doldurduğumuz yerdir; cars_view üzerinde seçilen her araba marka, model, yıl, trim aşağı arabalar-ham tek bir sıraya kadar daraltır. İlk dört sütundan sonra seçim sütunlarını daraltmak için E'den EX'e, cars_view'i dolduracak bilgiler verilir. –