如何解决我正在尝试使用谷歌表格上的条形码扫描仪制作一个自动更新的清单
看起来我的代码应该可以工作。我想从输入框中获取一串文本,在此代码中工作正常,并将其与我的谷歌工作表上的单元格中的文本进行比较。它是扫描特定库存项目列的函数的一部分。
变量 textInput 总是被正确填充。那来自输入框。但是,应该从谷歌工作表中填充的变量 itemName 不会从工作表中获取字符串。
我在第 2 列中有一张装满库存项目的表,第 1 列中有它们的数量,我试图让此代码接受输入框中某物的名称,然后自动扫描该项目并更新库存表。
为什么我不能让变量 itemName 由 google 表格上的单元格中的文本填充?
//'onOpen' makes this program begin when you open the spreadsheet that is refferenced
function onOpen(){
//This variable lets you stop the dialogue box from reopening or allow it to keep reopening when you enter another item.
var onOff="On";
//begin a loop which will reopen
while(onOff=="On"){
//Open the program which allows you to call information from a spreadsheet
var app=SpreadsheetApp;
//Call the active spreadsheet and then the specific sheet called 'Inventory'
var activeSheet=app.getActiveSpreadsheet().getSheetByName("Inventory");
//Access the user interface
var ui=app.getUi();
//Initiate a prompt box
var prompt=ui.prompt("Inverntory","Please scan the QR code of the item you want to update",ui.ButtonSet.OK);
//Extract the text logged from the input box
var textInput=prompt.getResponseText();
//Extract the button value from the input box ('OK' or 'X')
var buttonButton=prompt.getSelectedButton();
//Stop the dialogue box from reopening of 'X' iclicked on the dialogue box
if(buttonButton=ui.Button.CLOSE){
onOff="Off";
}
//Set the variable for scanning rows at row 2
var cellRow=2;
//Set the variable for scanning columns at column 2
var cellColumn=2;
//This variable will be populated with whatever cell is currently being scanned and compared to the text from the input box
var itemName="unassigned";
//This variable will count the cells that have been scanned and compared
var counter=0;
//This variable will be used to limit how many time the while loop can cycle
var counterMax=500;
//This variable will be used to call and change the quantity of an inventory item
var itemCount="unassigned";
while(counter<counterMax){
//This should get the text from the current cell being scanned for comparison
itemName=activeSheet.getRange(cellRow,cellColumn).getRichTextValue();
//If the current cell matches the input box text,this if statement will executed
if (itemName==textInput){
//This should move the current cell being looked at to the left one,putting us in the quantity row
cellColumn=cellColumn-1;
//This should pull the value from the current cell
itemCount=activeSheet.getRange(cellRow,cellColumn);
//This should add 1 to the inventory value
itemCount=itemCount+1;
//This should update the inventory quantity to it's new value in the sheet
activeSheet.getRange(cellRow,cellColumn).setValue(itemCount);
//This should move the current column to the right one,putting us back in the column where the inventory items names are stored
cellColumn=cellColumn+1;
//This will set the counter to the limmit which should end the while loop
counter=counterMax;
}
else{
//This should move the scanner to the next row
cellRow=cellRow+1;
//This should make the while loop one cycle closer to the max number of cycles
counter=counter+1;
}
}
}
}
抱歉,我知道这有点长。但这是 50% 的评论。我只是想编写干净且易于理解的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。