0

我的問題與谷歌電子表格條件格式是邊框。我試圖寫一個腳本,但我被卡住了使用腳本的條件格式

在我的第一個屏幕截圖中,您可以看到第7行和第A列的數據,我添加了一個觸發器,告訴腳本是否需要格式化。如果有1,那麼應該有邊界0或空白它不應該。 Screenshot 1

這個想法是,我得到了網格D12到J32的邊界,但行18,27和32應該沒有邊界,因爲0.另外單元格D12到J32不能被硬編碼,因爲它們是可變的, 1次可能是直到第32行另一個直到55它可以從D直到L,但也從D直到55相同。這可能全部基於改變單元B9調用的模板而改變。

爲例它的樣子後邊界將被添加Screenshot 2

我寫到目前爲止考慮基於細胞B9的onedit腳本,並刪除所有邊界從D12,直到底部和側面,但它將邊框留在頂部並保持不動。 問題我不確定如何編寫一個腳本,添加一個變量範圍的邊界。我猜測最簡單的方法就是先寫一個大的邊界表,然後再去掉一些行的垂直邊界。

希望對此有所幫助。

function onEdit(e) { 
var sheet = e.source.getActiveSheet() 
if (sheet.getName() !== 'View' || e.range.getA1Notation() !== 'B9') return; 
var range = SpreadsheetApp.getActiveSheet().getRange(12,4,100,13); 
    range.setBorder(false, false, false, false, false, false); 
} 

回答

1

我做了這個工作的功能,但相反,首先它刪除所有的邊框,然後它添加邊框在需要的地方。然而,我並沒有在B9等模板中理解你的故事...所以我做的是,如果在B9單元中有Update這個詞,那麼它將完成這項工作,並將B9的單元內容更改爲Done。因爲我明白了什麼(或者沒有),我改變了邊界相應什麼是對範圍A
發現這裏是我的代碼:

function onEdit(e) { 
    var start = 12; 
    var sheet = e.source.getActiveSheet() 
    if (sheet.getName() == 'Sheet1' && e.range.getA1Notation() == 'B9' && e.range.getValue() == "Update") { 
    var index = SpreadsheetApp.getActiveSheet().getRange("A12:A").getValues(); 
    SpreadsheetApp.getActiveSheet().getRange("D12:J").setBorder(false, false, false, false, false, false); 
    for(var i in index) { 
     var range = SpreadsheetApp.getActiveSheet().getRange("D"+(Number(i)+start)+":J"+(Number(i)+start)); 
     if (index[i][0] == 1) { 
     range.setBorder(true, true, true, true, true, true); 
     } 
    } 
    sheet.getRange("B9").setValue("Done"); 
    } 
} 
+0

嗨哈羅德,隨着調整我的一點點設法正是我需要的基於你提供給我的代碼。謝謝。稍後會發布我的代碼的最終版本,以供將來參考其他人使用 –