在這裏遇到一個奇怪的問題。我還在學習的谷歌應用程序的插件和書寫功能的出局,我的第一個真正的項目是「航運儀表板」 - 基本上,一個電子表格,我可以從UPS,聯邦快遞等跟蹤號碼,並從中解析運營商,生成一個跟蹤鏈接,這種類型的東西。我試圖設置它作爲一個功能,我可以設置被請求的數據類型(如載體),跟蹤號碼,並讓它返回所述信息。下面是我在哪裏現在:Google腳本函數參數中需要引號?
function trackingData(infoType,trackingNumber) {
//Regex for various carrier's tracking numbers.
var upsValue = /\b(1Z ?[0-9A-Z]{3} ?[0-9A-Z]{3} ?[0-9A-Z]{2} ?[0-9A-Z]{4} ?[0-9A-Z]{3} ?[0-9A-Z]|[\dT]\d\d\d ?\d\d\d\d ?\d\d\d)\b/i;
var fedexValue = /(\b96\d{20}\b)|(\b\d{15}\b)|(\b\d{12}\b)/;
var uspsValue = /\b(91\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d|91\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d ?\d\d\d\d)\b/i;
//First option: we want to know the carrier we're shipping with.
if (infoType == 'carrier') {
if (upsValue.test(trackingNumber)) {
return 'UPS';
}
else if (fedexValue.test(trackingNumber)) {
return 'FedEx';
}
else if (uspsValue.test(trackingNumber)) {
return 'USPS';
}
else return null;
}
傳遞當值的信息類型的問題來 - 如果我引用的單元格,或直接設置每個信息類型的變量,並把一個值調用公式它的時候工作得很好。不過,如果我通過將細胞中的稱之爲:
=infoType(carrier,trackingNumber)
我得到:
error: Unknown range name carrier
奇怪的是它的工作,如果我把它叫做:
=infoType("carrier",trackingNumber)
(注意「載體」周圍的引用)。
我看了所有的地方找到一個解決方案,不必把周圍的公式引號當它被調用,但到目前爲止還沒有任何運氣保持。任何人有想法?
角落找尋價值引號表示它的文本(又名字符串)的一大塊。如果它沒有這個界限,解析器會認爲它是一個變量或其他標識符。我認爲你堅持添加引號。 – Orangepill
如果你這樣做會發生什麼:'carrier =「carrier」;信息類型(載體,trackingNumber);'? – dave
@Orangepill - 這就是扔我送行的部分是,它如果它引用另一個單元格(而不是手動輸入載波作爲功能的一部分)的作品就好了。在這一點上,我假設它將是該函數的解決方法,只是不確定如何最好地做到這一點。 – John