Từ một vùng trên bảng tính Excel lập trình VBA để đồng bộ dữ liệu và định dạng lên Google Sheets và Excel Online. Mã nguồn rất đơn giản.
Video hướng dẫn nhanh
Mã nguồn
Nếu đây là lần đầu bạn xem hướng dẫn lập trình VBA cho Google Sheets và Excel Online thì bạn nên xem trước
Bài 01- Hướng dẫn lập trình với Google Sheets và Excel Online bằng Excel VBA và Add-in A-Tools
Khi bạn lập trình VBA trong Excel tạo ra các báo cáo hoặc vùng dữ liệu, bạn muốn đẩy/đồng bộ vùng bảng tính bao gồm cả dữ liệu hoặc cả định dạng lên Google Sheets hoặc Excle Online để phục vụ cho xem báo cáo trên các thiết bị di động thì bạn hãy lập trình với thư viện của Add-in A-Tools.
Giả sử tôi có báo cáo trên bảng tính Excel như sau
Tôi lập trình VBA để đẩy toàn bộ vùng dữ liệu trên lên Google Sheets và Excel Online như sau:
Trong môi trường VBA, vào menu Tools - > References... check mục "AddinATools.dll"
Trong VBA, chọn VBAProject của file bạn muốn viết code, vào menu Insert - > Module (nếu muốn tạo module mới).
Code dưới đây:
Trên đầu module khai báo hằng số FileID và kiểu cloud làm việc
Private Const FileID = "https://docs.google.com/spreadsheets/d/1-o__30yfKSTRAB3vrqEo6fCnMQSXHEN8ImtE4hca4CA/edit?gid=401030668#gid=401030668"
Private Const MyCloudType = ctGoogleDrive ' ctOneDrive for Excel Online
Tạo thủ tục để upload range như sau:
Sub UploadRange_To_GoogleSheets_ExcelOnline()
Dim MyCloud As New BSCloud
Dim wb As BSCloudWorkbook
Dim ExcelRange As Range
On Error GoTo lbEnd
If Not MyCloud.Connected(MyCloudType) Then
If Not MyCloud.OpenAuthor(Application, MyCloudType, Application.Hwnd) Then
Exit Sub
End If
End If
Set ExcelRange = Workbooks("Ten FIle Excel").Sheets("Sheet Name").Range("A1:H32")
'Way 1
'MyCloud.UploadRange Range("A1:H32"), FileID, "report", DataAndFormat
'Way 2
Set wb = MyCloud.Workbooks.Open(FileID)
wb.Sheets("report").Cells.Clear
wb.Sheets("report").UploadRange Range("A1:H32"), DataAndFormat
'Wb.Sheets("report").UploadRange Selection, DataAndFormat
lbEnd:
If Err <> 0 Then
Debug.Print "Error: " & Err.Description
End If
Set wb = Nothing
Set MyCloud = Nothing
End Sub
Hãy đảm bảo tên sheet "report" có trong Google Sheets của bạn. FileID phải tồn tại trong tài khoản Google Drive của bạn. Xem kỹ video hướng dẫn. Kết quả bạn nhận được là:
Nếu bạn muốn lập trình cho Excel Online thì chỉ cần thay giá trị của hai hằng số FileID và MyCloudType ứng với thông tin trên Excel Online của bạn là được. Ví dụ:
Private Const FileID = "https://onedrive.live.com/edit?id=11870394B81CE870!34948&resid=11870394B81CE870!34948&ithint=file%2cxlsx&wdo=2&cid=11870394b81ce870"
'Or:
'Private Const FileID = "11870394B81CE870!34948"
Private Const MyCloudType = ctOneDrive
Lưu ý là FileID có thể là Url hoặc ID của file trên drive.
Nếu có vướng mắc gì bạn hãy đặt câu hỏi trên group Facebook để được hỗ trợ online:
https://www.facebook.com/groups/hocexcel/
Hoặc: support@bluesofts.net
Chúc các bạn thành công!
Download Add-in A-Tools để thực hành
Tác giả Nguyễn Duy Tuân