Trong nhiều doanh nghiệp hiện nay, tính năng nhập dữ liệu online của Googlesheet được khai thác để nhiều người sử dụng và nhập liệu đồng thời. Và người dùng có nhu cầu lấy dữ liệu từ Googlesheet về Excel để phục vụ cho việc lưu trữ, xử lý số liệu, làm đa dạng các báo cáo hơn
Bài viết này sẽ hướng dẫn dùng VBA để lấy dữ liệu từ Googlesheet về bảng tính Excel
Bước 1: Thực hiện chia sẻ file
Vào file cần lấy dữ liệu trên Googlesheet => Bấm vào Chia sẻ (Share) => Ở phần Quyền truy cập chung (General access) => Chọn Bất kỳ ai có đường liên kết (Anyone with this link)
Bước 2: Lấy chuỗi khóa trong đường link file Googlesheet
Giả sử link của 1 file googlesheet là:
https://docs.google.com/spreadsheets/d/1jWJqRmx7T6GkNTMJUTrjR96muNKgrmokd_ZAViSaXT0/edit#gid=1039827565
Thì chuỗi khóa là đoạn sau d/ và trước /edit:
"1jWJqRmx7T6GkNTMJUTrjR96muNKgrmokd_ZAViSaXT0"
Bước 3: Sao chép đoạn code sau vào môi trường VBA
Mở file Excel trên máy tính lên => Nhấn tổ hợp phím Alt+F11 (hoặc Alt+Fn+F11) để vào cửa sổ VBA
Trong cửa sổ VBA vào Insert => Module và copy đoạn code dưới đây vào phần soạn thảo code trong Module.
Thay đoạn "xxxxxxxxxxxxxxxxxxxxxxxxxxx" trong code bằng chuỗi khóa lấy ở bước 2 (Lưu ý: Chuỗi này phải đặt trong dấu nháy kép)
Sub GetDataGGsheet()
Dim qry As QueryTable, ustr As String, kstr As String
kstr = "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
If ActiveSheet.QueryTables.Count > 0 Then ActiveSheet.QueryTables(1).Delete
ActiveSheet.Cells.Clear
ustr = "https://spreadsheets.google.com/tq?tqx=out:html&key=" & kstr
Set qry = ActiveSheet.QueryTables.Add(Connection:="URL;" & ustr, Destination:=Range("$A$1"))
With qry
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.Refresh
End With
End Sub
Bước 4: Chạy VBA để lấy dữ liệu
Nhấn phím F5 và chờ trong giây lát để lấy dữ liệu về File Excel. Trường hợp có xuất hiện thông báo lỗi thì cần kiểm tra lại Bước 1, Bước 2 xem đã chia sẻ file hay lấy đúng mã khóa chưa
{Đt Zalo} - 038 696 1334
Code chạy rất ok nhe ad. Nhưng hiện tại code chỉ mới lấy được dữ liệu sheet đầu tiên thôi, nếu mình cần lấy dữ liệu của những sheet khác theo ý muốn thì làm như thế nào, nhờ ad hướng dẫn thêm, cảm ơn rất nhiều!
Trả lờiXóa