Estoy tratando de construir una lista de mi empleado local.
Actualmente uso Excel VBA y funciona bien, pero mi superior quiere que sea acceso en línea. Así que ahora estoy usando Google Sheets y Google App Script. Tengo problemas para hacer la función de búsqueda. Mi código en VBA de la siguiente manera:
Dim wb As Workbook Dim whs As Worksheet Dim NoKadPengenalan As String Dim lastrowIC As Long Set wb = ThisWorkbook Set whs = wb.Sheets("Data") NoKadPengenalan = Trim(txtCarianIC.Text) lastrowIC = whs.Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To lastrowIC If whs.Cells(i, 2).Value = txtCarianIC.Text Then txtNama.Text = whs.Cells(i, 1).Value txtIC.Text = whs.Cells(i, 2).Value txtAlamat.Text = whs.Cells(i, 4).Value txtTel.Text = whs.Cells(i, 5).Value cmbPL.Value = whs.Cells(i, 6).Value cmbZon.Value = whs.Cells(i, 7).Value cmbStatus.Value = whs.Cells(i, 8).Value Next End Sub¿Cómo cambio esos códigos en el script de la aplicación de Google y devuelvo valores a la forma de usuario en las hojas de Google?
He probado los siguientes códigos pero no devuelve nada.
var searchID= 0; function Search() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var formS = ss.getSheetByName("User Form"); //User Entry Form var str = formS.getRange("C3").getValue(); var values = ss.getSheetByName(dataS).getDataRange().getValues(); for (var i=0; i<values.length; i++) { var rows = values[i]; if (rows[searchID] == str) { formS.getRange("C6").setValue(rows[0]); formS.getRange("C8").setValue(rows[1]); formS.getRange("C10").setValue(rows[2]); formS.getRange("C12").setValue(rows[3]); formS.getRange("C17").setValue(rows[4]); formS.getRange("F6").setValue(rows[5]); formS.getRange("F8").setValue(rows[6]); formS.getRange("F10").setValue(rows[7]); formS.getRange("F12").setValue(rows[8]); formS.getRange("F14").setValue(rows[9]); formS.getRange("F16").setValue(rows[10]); formS.getRange("F19").setValue(rows[11]); formS.getRange("G19").setValue(rows[12]); formS.getRange("H19").setValue(rows[13]); } } }Esta es mi forma de usuario en las hojas de Google Estos son mis datos de muestra
Solo una suposición. Las rows[searchID] son rows[0] . Por lo que puedo decir, la primera columna contiene nombres. Así que es el nombre de alguien.
str es una identificación (de la celda "C3").
Así que aquí if (rows[searchID] == str) está tratando de comparar el nombre de la primera columna con el ID de la celda "C3". No tiene sentido. Obtendrá falso siempre a menos que alguien tenga un nombre como '96081001649'.