Bài 1: Khai Báo Biến và Đọc Ghi Ô – Dải Ô (Cell / Range)

Đây là bài đầu tiên trong chuỗi bài Học Ứng dụng Google App Script trong Google Sheet

Nội dung

  • Cách khai báo biến trong một hàm của Google App Script
  • Đọc ghi thông của một ô (cell) hoặc dải ô (range) trong Google Sheet bằng Google App Script

Tóm tắt

  • Google Sheet có 4 phân lớp biến: Application -> Spreadsheet -> Sheet -> Range. Để gọi 1 phân lớp sau, thì đầu tiên, bạn phải gọi các phân lớp đứng đằng trước nó ra
  • getRange() trả về vị trí của biến trong ngoặc
  • getValue() là hàm lấy giá trị của biến trong ngoặc
  • setValue() cho phép ghi giá trị trong ngoặc vào biến đằng trước
  • Logger.log() là hàm ghi giá trị trong ngoặc vào nhật kí (log)

I. Khai báo biến

Quy tắc

Trước khi giới thiệu cách khai báo, mình muốn các bạn hiểu rõ quy tắc khai báo sau đây. Nó tuy đơn giản nhưng lại vô cùng quan trọng vì chúng ta sẽ dùng nó khi viết hầu hết các chương trình trên App Script.

Google Sheet có 4 phân lớp biến:

Application -> Spreadsheet -> Sheet -> Range

Để gọi 1 phân lớp sau, thì đầu tiên, bạn phải gọi các phân lớp đứng đằng trước nó ra. Ví dụ, khi muốn làm việc với Spreadsheet, thì bạn phải gọi Application ra. Muốn làm việc với Sheet, thì phải gọi Application -> Spreadsheet. Muốn gọi range (ô / dải ô) thì phải gọi
Application -> Spreadsheet -> Sheet.

1. Khai báo Application

Để khai báo Application bạn dùng cấu trúc như sau:

Application là phân lớp đầu tiên khi bạn làm việc với App Script – Sheet. Nói một cách ngắn gọn, hàm trên có chức năng gọi ra chương trình Google Sheet. Đây là hàm bắt buộc, nó sẽ xuất hiện trong hầu hết các bài chia sẻ của mình. Tuy nhiên sau này chúng ta sẽ tiến hành gộp chung nó với hàm bên dưới (Spreadsheet). Còn trong bài này, tạm thời mình tách riêng từng phần để các bạn dễ hiểu.

2. Khai báo Spreadsheet

Spreadsheet là phân lớp thứ 2, đứng dưới Application. Như bạn biết, trong Google Drive, bạn có thể tạo nhiều file Google Sheet khác nhau. Từng file lại có từng tên khác nhau. Chúng ta dùng hàm getActiveSpreadsheet() để gọi ra file Google Sheet mà chúng ta đang thao tác.

Để biết tại sao phải có SpreadsheetApp đứng trước, bạn vui lòng kéo lên trên để đọc lại Quy tắc

3. Khai báo Sheet

Phân lớp thứ 3 là Sheet. Trong một file Google Sheet sẽ có nhiều sheet nhỏ. Ví dụ trong hình là sheet0, sheet1, và sheet2.

Để khai báo 1 sheet, bạn dùng cú pháp như sau:

Vẫn theo Quy tắc, bạn phải gọi cả Application và Spreadsheet ra trước.

4. Khai báo Ô / Dải Ô (Range)

Ô hoặc Dải ô là phân lớp nhỏ nhất của 1 file Google Sheet. Có nhiều cách để gọi 1 ô hoặc dải ô. Sau đây mình giới thiệu bạn các cách chính mà mình thường dùng:

  • getActiveCell() : ô mà bạn đang chọn trong file Google Sheet
  • getActiveRange() : dải ô mà bạn đang chọn trong file Google Sheet
  • getRange() : có thể gọi ra ô hoặc cả dải ô bất kì trong ngoặc

Ví dụ cách sử dụng:

Cuối cùng, chúng ta đặt 4 biến trên vào trong cùng 1 function:

Trên thực tế, chúng ta ít khi làm việc với phân lớp Application, nên sẽ không dùng cả 4 biến để khai báo như vậy. Ở bài sau, mình sẽ hướng dẫn các bạn cách thu gọn những dòng lệnh trên.

II. Đọc và ghi thông tin Ô (cell) hoặc Dải ô (range)

Trước khi tiến hành đọc ghi ô hoặc dải ô, bạn cần phải khai báo được vị trí của ô đó bằng hàm getRange().

Ví dụ, mình muốn đọc ghi thông tin của ô B1, là 100000. Thì đầu tiên mình phải gọi ra được vị trí của ô B1 trong bảng tính “sheet1“, trong file “Bài 1“, và trong ứng dụng Google Sheet.

Để gọi vị trí của 1 ô hoặc dải ô, chúng ta dùng hàm getRange()

getRange() trả về vị trí của biến trong ngoặc

hocggsheet.com

Hàm getValue() có tất cả 4 cách dùng. Trong bài này, mình sử dụng cách dùng thứ nhất (a1Notation). Nghĩa là bỏ tên của ô hoặc dải vô vào trong dấu ngoặc kép (” “)

Ví dụ, để gọi vị trí ô B1, mình viết: getRange(“B1”). Cụ thể, chúng ta viết lại như sau:

Sau khi dùng biến range để gọi vị trí ô B2, ta tiếp tục sử dụng hàm getValue() để lấy giá trị “100000” trong ô B2 ra.

getValue() là hàm lấy giá trị của biến trong ngoặc

Cách dùng:

Tuy nhiên, chúng ta sẽ bỏ dòng lệnh trên vào hàm Logger.log()

Logger.log() là hàm ghi giá trị trong ngoặc vào trong nhật kí (log)

hocggsheet.com

Chúng ta bấm “Chạy” để thực hiện chương trình. Sau đó bấm “Xem” -> Nhật kí để xem file nhật kí (bản tiếng Anh: View -> Log)

Cách mở file Nhật kí (log)

Trong file log (nhật kí) đã hiện giá trị của ô B1, là 100000

Tiếp theo, để ghi giá trị vào ô hoặc dải ô, chúng ta dùng hàm setValue(). Nếu giá trị trong ngoặc là chữ cái thì bạn phải đặt trong dấu ngoặc kép (“”), còn nếu là số thì không cần.

setValue() cho phép ghi giá trị trong ngoặc vào biến đằng trước

hocggsheet.com

Ví dụ, mình muốn ghi giá trị “100” vào ô B2. Mình sẽ viết là:

Ở trong clip hướng dẫn, mình có hướng dẫn các bạn cách ghi giá trị của ô B1 (100000) vào ô B8. Để làm vậy, trước tiên chúng ta cần khai báo vị trí của ô B8 và gán nó vào 1 biến bất kì. Mình đã dùng biến “dich” để làm.

Đồng thời, mình cũng dùng thêm 1 biến “giatri” để lấy giá trị 100000 của ô B1.

Tiếp theo, chúng ta dùng lệnh setValue để thực hiện yêu cầu. Cả bài sẽ được như sau:

5 COMMENTS

  1. Tình cờ tìm học apps script phát hiện trang của bạn rất hay, đúng cái mình cần, cảm ơn chia sẽ của bạn….Mog bạn tiếp tục viết thêm nhiều bài hay..chúc bạn sức khỏe

  2. Mình rất thích cách bạn viết code, rất dễ hiểu, không đi tắt.
    Cảm ơn Admin nhiều nhé.

Leave a Reply