Excel VBA - Lấy dữ liệu thời tiết từ nguồn AccuWeather

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,400
Được thích
1,403
Điểm
560
Bài viết này tôi chia sẻ với các bạn 2 file thực hiện lấy dữ liệu thời tiết từ nguồn AccuWeather

File WheatherAccu.xlsb với code thực hiện lấy dữ liệu đơn giản nên mất nhiều thời gian hơn.
Với WheatherAccu_Async.xlsb thì code rất phức tạp để sử dụng cơ chế Bất đồng bộ khi dùng phương thức Request HTTP, nên lấy dữ liệu rất nhanh nếu dữ liệu có nhiều tháng.


Sau khi sử dụng ứng dụng, nếu gặp vấn đề các bạn có thể đăng bài bên dưới để được giải đáp.


----------------------------------
wheather_accu.png
 

File đính kèm

Lần chỉnh sửa cuối:

quyenpv

Thu nhặt kiến thức
Tham gia ngày
5 Tháng một 2013
Bài viết
385
Được thích
44
Điểm
385
Tuổi
36
Không hiểu sao hay không biết dùng, cả 2 file click đều không chạy
 

hoahuongduong1986

Thành viên thường trực
Tham gia ngày
14 Tháng mười một 2018
Bài viết
220
Được thích
17
Điểm
185
Tuổi
33
Bài viết này tôi chia sẻ với các bạn 2 file thực hiện lấy dữ liệu thời tiết từ nguồn AccuWeather

File WheatherAccu.xlsb với code thực hiện lấy dữ liệu đơn giản nên mất nhiều thời gian hơn.
Với WheatherAccu_Async.xlsb thì code rất phức tạp để sử dụng cơ chế Bất đồng bộ khi dùng phương thức Request HTTP, nên lấy dữ liệu rất nhanh nếu dữ liệu có nhiều tháng.


Sau khi sử dụng ứng dụng, nếu gặp vấn đề các bạn có thể đăng bài bên dưới để được giải đáp.


----------------------------------
View attachment 238362
Em chào anh. Em thấy anh rất giỏi về việc lấy số liệu trên Web như File lấy số liệu chứng khoán quá khó và hay. Lúc nào em nhờ anh giải yêu cầu này được không ạ.
Em có tìm tòi và giải bằng Python được rồi nhưng vẫn ham giải bằng VBA sẽ như thế nào cho Case này ạ. Em cảm ơn anh.
 
Lần chỉnh sửa cuối:

NghiaKieu

Thành viên chính thức
Tham gia ngày
27 Tháng năm 2012
Bài viết
57
Được thích
45
Điểm
370
Em cũng thử mà cả hai file đều không chạy bác ạ. Cũng không thấy báo lỗi gì cả.
 

Cu Tồ

Tìm đến kiến thức!
Tham gia ngày
6 Tháng năm 2020
Bài viết
94
Được thích
22
Điểm
20
sau khi chọn tỉnh thì code báo lỗi bác ơi
1590893495340.png
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,400
Được thích
1,403
Điểm
560
@cuto24, @naturooo, @quyenpv

Các bạn thử tải lại file.

----------------------------------------------
@hoahuongduong1986
Nếu bạn làm được bằng Python, thì bạn đăng code Python vào chủ đề của bạn và tag tên của tôi vào, được thì tôi sẽ xem qua giúp bạn.
Trước mắt là tôi thấy trang của bạn cần lấy dữ liệu qua nhiều lớp bảo mật với API nghiêm ngặt.
 

NghiaKieu

Thành viên chính thức
Tham gia ngày
27 Tháng năm 2012
Bài viết
57
Được thích
45
Điểm
370
@cuto24, @naturooo, @quyenpv

Các bạn thử tải lại file.

----------------------------------------------
@hoahuongduong1986
Nếu bạn làm được bằng Python, thì bạn đăng code Python vào chủ đề của bạn và tag tên của tôi vào, được thì tôi sẽ xem qua giúp bạn.
Trước mắt là tôi thấy trang của bạn cần lấy dữ liệu qua nhiều lớp bảo mật với API nghiêm ngặt.
Em vẫn bị lỗi vậy bác ạ.
 

Cu Tồ

Tìm đến kiến thức!
Tham gia ngày
6 Tháng năm 2020
Bài viết
94
Được thích
22
Điểm
20
@cuto24, @naturooo, @quyenpv

Các bạn thử tải lại file.

----------------------------------------------
@hoahuongduong1986
Nếu bạn làm được bằng Python, thì bạn đăng code Python vào chủ đề của bạn và tag tên của tôi vào, được thì tôi sẽ xem qua giúp bạn.
Trước mắt là tôi thấy trang của bạn cần lấy dữ liệu qua nhiều lớp bảo mật với API nghiêm ngặt.
e vẫn bị lỗi đấy
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,400
Được thích
1,403
Điểm
560
@cuto24, @naturooo, @quyenpv

Các bạn thử tải lại file một lần nữa.

Các khả năng gây ra lỗi tôi đã loại trừ, nếu còn gặp lỗi nữa thì tôi cũng đành chịu.

Trong Code có Hàm thông tin vùng miền rất dài.
Trong VBA nếu máy 32bit thì không thể thông dịch một Hàm với chuỗi quá dài như vậy.

Nếu các bạn còn gặp lỗi như vậy thì tôi buộc phải chuyển dữ liệu vùng miền ra bảng tính mà thôi.
 

hoahuongduong1986

Thành viên thường trực
Tham gia ngày
14 Tháng mười một 2018
Bài viết
220
Được thích
17
Điểm
185
Tuổi
33
@cuto24, @naturooo, @quyenpv

Các bạn thử tải lại file.

----------------------------------------------
@hoahuongduong1986
Nếu bạn làm được bằng Python, thì bạn đăng code Python vào chủ đề của bạn và tag tên của tôi vào, được thì tôi sẽ xem qua giúp bạn.
Trước mắt là tôi thấy trang của bạn cần lấy dữ liệu qua nhiều lớp bảo mật với API nghiêm ngặt.
Dạ, em gửi anh rồi đó ạ. Em cảm ơn!
 

Hau151978

Thành viên tích cực
Tham gia ngày
19 Tháng mười 2011
Bài viết
1,356
Được thích
1,248
Điểm
560
Máy của mình cũng không update được. Mình dùng win 10 64 bit, excel 365 32 bit.
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,400
Được thích
1,403
Điểm
560
Sub SuperCall này tôi chỉ viết để chỉ khi Click vào đối tượng trong Trang tính thì mới có thể hoạt động. Bạn không thể chạy trực tiếp Sub với nút Play hoặc F5 trong cửa sổ VBA.

Bạn Click vào "Cập nhật 5 ngày tới" và chụp ảnh lỗi.


Bạn muốn chạy riêng từng mục lấy dữ liệu thì:

File 1:
PHP:
Sub Test1()
  With ThisWorkbook.Worksheets("Th" & ChrW(7901) & "i ti" & ChrW(7871) & "t")
    Call GetWheather(.[D2], .[B3], .[D3], .[A6], True)
  End With
End Sub

Sub Test2()
  With ThisWorkbook.Worksheets("Th" & ChrW(7901) & "i ti" & ChrW(7871) & "t")
  Call GetWheather(.[D2], .[B3], .[D3], .[A6], False)
  End With
End Sub
File Async:
PHP:
Sub Test1()
  With ThisWorkbook.Worksheets("Th" & ChrW(7901) & "i ti" & ChrW(7871) & "t")
  Call InitCommand: Call CommanEx.GetWheather(.[D2], .[B3], .[D3], .[A6], True)
  End With
End Sub

Sub Test2()
  With ThisWorkbook.Worksheets("Th" & ChrW(7901) & "i ti" & ChrW(7871) & "t")
  Call InitCommand: Call CommanEx.GetWheather(.[D2], .[B3], .[D3], .[A6], False)
  End With
End Sub
 
Lần chỉnh sửa cuối:

quyenpv

Thu nhặt kiến thức
Tham gia ngày
5 Tháng một 2013
Bài viết
385
Được thích
44
Điểm
385
Tuổi
36
1591006886229.png

Vẫn lỗi anh ạ
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,400
Được thích
1,403
Điểm
560
Vì một số bạn không biết kỹ thuật gán tất cả Đối tượng (Hình Ảnh ,Shape,..) Vào một Macro duy nhất trong hai File ở trên,
nên tôi sửa file lại thành các Macro đơn lẻ, để đơn giản hơn trong việt gọi một Macro.

-------------------------------
 

File đính kèm

Lần chỉnh sửa cuối:

PacificPR

Thành viên gắn bó
Tham gia ngày
6 Tháng năm 2016
Bài viết
1,894
Được thích
2,549
Điểm
360
Nơi ở
Cái Bang
Vì một số bạn không biết kỹ thuật gán tất cả Đối tượng (Hình Ảnh ,Shape,..) Vào một Macro duy nhất trong hai File ở trên,
nên tôi sửa file lại thành các Macro đơn lẻ, để đơn giản hơn trong việt gọi một Macro.

-------------------------------
Em tải về cũng không chạy được Anh ạ
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,400
Được thích
1,403
Điểm
560

PacificPR

Thành viên gắn bó
Tham gia ngày
6 Tháng năm 2016
Bài viết
1,894
Được thích
2,549
Điểm
360
Nơi ở
Cái Bang
Top Bottom