Copy tỷ giá ngoại tệ từ website của 12 tháng

Liên hệ QC

hoamattroicoi

Thành viên gắn bó
Thành viên BQT
Moderator
Tham gia
19/12/10
Bài viết
2,579
Được thích
5,742
Nghề nghiệp
Công nhân vệ sinh số liệu
Em có nhu cầu cần lấy lại toàn bộ tỷ giá của 12 tháng từ ngày 01/01/2015 đến ngày 31/12/2015 từ 2 website :

1. Vietcombank :
https://www.vietcombank.com.vn/exchangerates/default.aspx
2. Eximbank :
https://www.eximbank.com.vn/home/Static/Exchangerate.aspx

Và copy vào 2 sheet VietCombank và Eximbank tương ứng như file đính kèm. Em đang cố gắng tìm cách nào giải pháp nào phù hợp để có thể copy một cách tự động nhưng chưa tìm được nên post bài lên đây. Nếu anh, chị hoặc sư phụ nào có phương án hay thì chia sẻ để em học hỏi với nhé.

Em xin cảm ơn.

HMT.
 

File đính kèm

  • Lay ty gia 12 thang.xlsx
    436.8 KB · Đọc: 75

File đính kèm

  • Error.JPG
    Error.JPG
    19.4 KB · Đọc: 111
Upvote 0
Bạn doveandrose cho mình hỏi : Với ngân hàng Eximbank thì sao ta? Hình như cấu trúc trang web khác nhau thì mình không xài chung code được phải không?

Nếu có thể bạn giúp mình chạy code của Eximbank để mình học hỏi nhé.

Cảm ơn bạn nhiều.

để mai được không bạn ơi ? giờ chưa có ý tưởng gì hết , cùng lắm là qua tết sẽ có bài giải thôi mà --=0--=0--=0
 
Upvote 0

File đính kèm

  • Image strData.JPG
    Image strData.JPG
    24 KB · Đọc: 107
Upvote 0
Hình của strData đây, bạn xem dùm mình nhé.

Cảm ơn bạn.

híc , ca này thì chắc bác sỹ chỉ có nước ... trả về !$@!!!$@!!
hình ảnh của excel 2010 của mình nè , vẫn lấy dữ liệu bình thường

99f1af55a59783b58d0a2e7fa2b2dcd3.png



thôi thì hoamattroicoi cài excel 2013 đi --=0--=0
 
Upvote 0
híc , ca này thì chắc bác sỹ chỉ có nước ... trả về !$@!!!$@!!
hình ảnh của excel 2010 của mình nè , vẫn lấy dữ liệu bình thường

thôi thì hoamattroicoi cài excel 2013 đi --=0--=0
Cảm ơn doveandrose đã dành thời gian quý báu để giúp mình, có lẽ phải cài Office 2013 trước tết thôi. hihihi

Còn vụ Eximbank, nếu doveandrose có thời gian và ý tưởng gì thì giúp mình tiếp nhé.

Cảm ơn bạn rất nhiều.

Chúc bạn nhiều niềm vui trong cuộc sống.

HMT.
 
Upvote 0
Xin chào bạn doveandrose !
Tôi xin lỗi tôi không có đủ khả năng để bàn về code nên không có ý gì cả nhưng may mắn hơn bạn hoamattroicoi là tôi có đủ điều kiện ( 1 máy 2010 và 1 máy 2013) để test code.
Tôi đã test kết quả đều vẫn bị lỗi giống như bạn hoamattroicoi miêu tả ở trên.
Không biết là có nguyên nhân nào khác nữa không mong bạn tìm hiểu thêm ạ.

1.jpg
2.jpg


2.jpg
3.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
bạn sửa dòng báo lỗi thành

Mã:
[B]req.send (strData)[/B]

đã kiểm tra trên máy excel 2007 với win XP , cứ tiếp tục hi vọng , hi hi

Wow, code chạy tuyệt vời rồi bạn doveandrose ơi. Trời ơi, làm mình sáng nay bắn mail đi khắp nơi nhờ test code hộ. huhuhu.

Cảm ơn bạn rất nhiều.

À quên, máy tính mình sau khi chạy code bị hiện cái này, không biết bị sao nữa hihihi.
 

File đính kèm

  • Thank you.JPG
    Thank you.JPG
    59.1 KB · Đọc: 108
Upvote 0
Wow, code chạy tuyệt vời rồi bạn doveandrose ơi. Trời ơi, làm mình sáng nay bắn mail đi khắp nơi nhờ test code hộ. huhuhu.

Cảm ơn bạn rất nhiều.

À quên, máy tính mình sau khi chạy code bị hiện cái này, không biết bị sao nữa hihihi.

rồi xong cái đó là virus đấy , coi chừng hư ỗ cứng =))
 
Upvote 0
Anh doveandrose nhà ta đã giúp đỡ thì giúp đỡ cho trót đi, còn cái Eximbank nữa kìa anh doveandrose, để người ta 1/2 hạnh phúc 1/2 nản lòng thì tội, cũng để mọi người học hỏi thêm nữa chứ anh doveandrose, hình như lấy DL từ Web này phải thêm một vòng lặp nữa để lấy hết "Bảng số:..." , phải tạo thêm một outVIEWPAGE (ddlQuoteCount) phải ko anh
 
Lần chỉnh sửa cuối:
Upvote 0
Anh doveandrose nhà ta đã giúp đỡ thì giúp đỡ cho trót đi, còn cái Eximbank nữa kìa anh doveandrose, để người ta 1/2 hạnh phúc 1/2 nản lòng thì tội, cũng để mọi người học hỏi thêm nữa chứ anh doveandrose, hình như lấy DL từ Web này phải thêm một vòng lặp nữa để lấy hết "Bảng số:..." , phải tạo thêm một outVIEWPAGE (ddlQuoteCount) phải ko anh

bạn sốt sắng như vậy thì bạn cứ vào giúp người ta đi ? thớt lập ra đâu phải dành riêng cho tôi trả lời đâu chứ ?
sao bạn phải đi khóc mướn dùm người khác vậy ? có thấy mệt không ?
tôi quá biết chủ thớt này chả bao giờ làm trò spam hối thúc
và chủ thớt này cũng quá biết tôi ghét nhất trò đó , khi nào tôi thích thì tôi làm
nếu mục đích bạn vào diễn đàn chỉ có vậy thì tôi không cản
nhưng bạn cứ tiếp tục làm thế này thì người thiệt thòi là ai chắc bạn cũng hiểu ?
 
Upvote 0
Anh doveandrose nhà ta đã giúp đỡ thì giúp đỡ cho trót đi, còn cái Eximbank nữa kìa anh doveandrose, để người ta 1/2 hạnh phúc 1/2 nản lòng thì tội
Ồ, dù sao cũng cảm ơn bạn, thực sự thì bản thân mình cũng không thích cái trò "hối thúc" và đặt deadline cho người giúp :D :D :D

Hạnh phúc trọn vẹn là phải biết chờ đợi bạn à =))))). Mình đã đánh dấu theo dõi chủ đề này và mình sẽ đợi bạn ấy, tuy nhiên bạn ấy có muốn viết tiếp không là quyền của bạn ấy, hihihihihi. Bạn ấy đẹp mà, bạn ấy có quyền =)) =)) =))
 
Upvote 0
Đánh vật với mớ chữ rốt cuộc cũng làm ra cái này
Mã:
Function ex(ngay, bang_so)Dim doc As Object, req As Object, r As Long, arr(1 To 100000, 1 To 6), k As Long
Dim strData As String, VIEWSTATE As String, VIEWSTATEGENERATOR As String, VIEWSTATEENCRYPTED As String
Dim tcount As Double
tcount = Timer
Set doc = CreateObject("htmlfile")
Set req = CreateObject("Msxml2.XMLHTTP")
strData = _
"__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=%2FwEPDwULLTExOTYyMTE2MjgPZBYCAgMPZBYOAgMPEGQPFn1mAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcCOAI5AjoCOwI8Aj0CPgI%2FAkACQQJCAkMCRAJFAkYCRwJIAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwWfRBlBQQxMDAwZxAFCUNOIFRwLkhDTQUEMjAwMGcQBQxDTiBIw6AgTuG7mWkFBDEwMDFnEAUOQ04gxJDDoCBO4bq1bmcFBDEwMDJnEAUNQ04gQ%2BG6p24gVGjGoQUEMTAwM2cQBQ5DTiBDaOG7oyBM4bubbgUEMTAwNGcQBQ1DTiBIw7JhIELDrG5oBQQxMDA3ZxAFDENOIFF14bqtbiAxMAUEMTAxMmcQBQxDTiBRdeG6rW4gMTEFBDEwMTVnEAUMQ04gTmhhIFRyYW5nBQQxMjAwZxAFFENOIEJ1w7RuIE3DqiBUaHXhu5l0BQQxMjAxZxAFDUNOIMSQw6AgTOG6oXQFBDEyMDJnEAUPUEdEIELhuqNvIEzhu5ljBQQxMjAzZxAFDVBHRCBDaGkgTMSDbmcFBDEyMDRnEAUSUEdEIMSQ4bupYyBUcuG7jW5nBQQxMjA1ZxAFDlBHRCBCdcO0biBI4buTBQQxMjA2ZxAFDlBHRCBMw6ogRHXhuqluBQQxMjA3ZxAFGVBHRCBOZ3V54buFbiBU4bqldCBUaMOgbmgFBDEyMDhnEAUSUEdEI" & _
"FBoYW4gQ2h1IFRyaW5oBQQxMjA5ZxAFD0NOIFTDom4gxJDhu4tuaAUEMTQwMGcQBQxDTiBTw6BpIEfDsm4FBDE0MDFnEAULQ04gUXXhuq1uIDQFBDE0MDJnEAULQ04gUXXhuq1uIDcFBDE0MDNnEAUOQ04gQ%2BG7mW5nIEjDsmEFBDE0MDRnEAUTUEdEIFBo4bqhbSBWxINuIEhhaQUEMTQwNWcQBRRQR0QgVsO1IFRow6BuaCBUcmFuZwUEMTQwNmcQBQxQR0QgQ%2BG7pyBDaGkFBDE0MDdnEAUOUEdEIEFuIFPGsMahbmcFBDE0MDhnEAURUEdEIE5ndXnhu4VuIFPGoW4FBDE0MDlnEAUZUEdEIE5ndXnhu4VuIFRo4buLIFRo4bqtcAUEMTQxMGcQBQ5QR0QgUGjDuiBYdcOibgUEMTQxMWcQBQ1QR0QgUGjDuiBN4bu5BQQxNDEyZxAFDENOIFTDonkgxJDDtAUEMTUwMGcQBQtDTiBN4bu5IFRobwUEMTUwMWcQBQtDTiBBbiBHaWFuZwUEMTUwMmcQBQpDTiBMb25nIEFuBQQxNTAzZxAFDkNOIELhuqFjIExpw6p1BQQxNTA0ZxAFDkNOIEtpw6puIEdpYW5nBQQxNTA1ZxAFEFBHRCBDaMOidSDEkOG7kWMFBDE1MDZnEAUOUEdEIFTDom4gQ2jDonUFBDE1MDdnEAUOUEdEIEPDoWkgUsSDbmcFBDE1MDhnEAUQUEdEIFRo4buRdCBO4buRdAUEMTUwOWcQBRBDTiBIw7luZyBWxrDGoW5nBQQxNjAwZxAFEENOIFF14bqjbmcgTmfDo2kFBDE2MDFnEAUHQ04gVmluaAUEMTYwMmcQBQ9DTiBI4bqjaSBQaMOybmcFBDE2MDNnEAUIQ04gSHXhur8FBDE2MDRnEAUPUEdEIENo4bujIEPhu5NuBQQxNjA1ZxAFD1BHRCBI4bqjaSBDaMOidQUEMTYwNmcQBQ1DTiBMw6FuZyBI4bqhB" & _
"QQxNzAwZxAFDUNOIExvbmcgQmnDqm4FBDE3MDFnEAURQ04gSGFpIELDoCBUcsawbmcFBDE3MDJnEAUOQ04gxJDhu5FuZyDEkGEFBDE3MDNnEAUPQ04gQ%2BG6p3UgR2nhuqV5BQQxNzA0ZxAFDVBHRCBUw6J5IEjhu5MFBDE3MDVnEAUYUEdEIE5ndXnhu4VuIFRow6FpIEjhu41jBQQxNzA2ZxAFD1BHRCBIw6BuZyBCw7RuZwUEMTcwN2cQBRhQR0QgTmd1eeG7hW4gUGhvbmcgU%2BG6r2MFBDE3MDhnEAUQUEdEIFZp4buHdCBIxrBuZwUEMTcwOWcQBRBQR0QgxJDhu5NuZyBUw6JtBQQxNzEwZxAFFlBHRCBUcuG6p24gxJDEg25nIE5pbmgFBDE3MTFnEAUNUEdEIFTDonkgU8ahbgUEMTcxMmcQBRdQR0QgTmd1eeG7hW4gQ2jDrSBUaGFuaAUEMTcxNWcQBRhQR0QgTMO9IFRoxrDhu51uZyBLaeG7h3QFBDE3MTZnEAUQUEdEIFh1w6JuIERp4buHdQUEMTcxN2cQBQ9QR0QgQsOgIFRSaeG7h3UFBDE3MThnEAUPUEdEIE3hu7kgxJDDrG5oBQQxNzE5ZxAFDlBHRCBIw6AgxJDDtG5nBQQxNzIwZxAFDVBHRCBLaW0gTGnDqm4FBDE3MjFnEAUQUEdEIEPhu61hIMSQw7RuZwUEMTcyMmcQBQ5QR0QgVHJ1bmcgSMOyYQUEMTcyM2cQBQ9QR0QgVGjEg25nIExvbmcFBDE3MjRnEAUOUEdEIFRydW5nIFnDqm4FBDE3MjVnEAUOUEdEIEjDoG5nIFRoYW4FBDE3MjZnEAUOUEdEIELhuqFjaCBNYWkFBDE3MjdnEAUPUEdEIE5ndXnhu4VuIER1BQQxNzI4ZxAFEVBHRCDEkOG7k25nIFh1w6JuBQQxNzI5ZxAFDVBHRCBMw7IgxJDDumMFBDE3MzBnEAUQQ04gQsOsbmggRMawxqFuZ" & _
"wUEMTgwMGcQBQ5DTiDEkOG7k25nIE5haQUEMTgwMWcQBQ9DTiBUaOG7pyDEkOG7qWMFBDE4MDJnEAUMQ04gQsOgIFLhu4thBQQxODAzZxAFD1BHRCBMb25nIEtow6FuaAUEMTgwNGcQBRFDTiBCw6xuaCBQaMaw4bubYwUEMTgwNWcQBRBQR0QgSOG7k25nIELDoG5nBQQxODA2ZxAFDVBHRCBLaW0gQmnDqm4FBDE4MDdnEAUNUEdEIEFuIMSQw7RuZwUEMTgwOGcQBQxQR0QgUXXhuq1uIDIFBDE4MDlnEAURUEdEIEzDqiBWxINuIE5pbmgFBDE4MTBnEAUPUEdEIFRy4bqjbmcgQm9tBQQxODExZxAFDlBHRCBHaWEgS2nhu4dtBQQxODEyZxAFD1BHRCBMb25nIFRow6BuaAUEMTgxNGcQBQ9QR0QgVMOibiBUaeG6v24FBDE4MTVnEAUOUEdEIEJpw6puIEjDsmEFBDE4MTZnEAUPQ04gUXXhuqNuZyBOaW5oBQQxOTAwZxAFDUNOIFF1w6NuZyBOYW0FBDE5MDFnEAUOUEdEIE3Ds25nIEPDoWkFBDE5MDJnEAUQUEdEIELhur9uIFRow6BuaAUEMjAwMWcQBQ1QR0QgVGhhbmggxJBhBQQyMDAyZxAFDUNOIELDrG5oIFBow7oFBDIxMDBnEAUSQ04gUGjDuiBN4bu5IEjGsG5nBQQyMTAxZxAFE0NOIFTDom4gU8ahbiBOaOG6pXQFBDIxMDJnEAUNQ04gQsOsbmggVMOibgUEMjEwM2cQBQlDTiBRdWFuIDMFBDIxMDRnEAUNUEdEIEzDqiBM4bujaQUEMjEwNWcQBQ5QR0QgVHJ1bmcgU8ahbgUEMjEwNmcQBQ1QR0QgTWluaCBLaGFpBQQyMTA3ZxAFFFBHRCBUcsawxqFuZyDEkOG7i25oBQQyMTA4ZxAFFFBHRCBCw7lpIFRo4buLIFh1w6JuBQQyMTA5ZxAFDVBHRCBUYW8gxJDDo" & _
"G4FBDIxMTBnEAUPUEdEIFbEg24gVGjDoW5oBQQyMTExZxAFDlBHRCBIw6BuZyBYYW5oBQQyMTEyZxAFDFBHRCBRdeG6rW4gNgUEMjIwMGcQBQxQR0QgUXXhuq1uIDgFBDIyMDFnEAUNUEdEIEfDsiBW4bqlcAUEMjIwMmcQBRJQR0QgSOG7kyBWxINuIEh1w6oFBDIyMDNnEAURUEdEIEzDqiBWxINuIFPhu7kFBDIyMDRnEAUNUEdEIEvhu7MgSMOyYQUEMjIwNWcQBRNQR0QgUGhhbiBYw61jaCBMb25nBQQyMjA2ZxAFGlBHRCBC4bq%2FbiBDaMawxqFuZyBExrDGoW5nBQQyMjA3ZxAFElBHRCBWw7UgVsSDbiBU4bqnbgUEMjIwOGcQBRJQR0QgVHLGsOG7nW5nIFPGoW4FBDIyMDlnEAULUEdEIMSQYSBLYW8FBDIyMTBnEAUYUEdEIE5ndXnhu4VuIEPDtG5nIFRy4bupBQQyMjExZxAFElBHRCBUaOG6o28gxJBp4buBbgUEMjIxMmcWAWZkAgUPD2QWAh4Hb25jbGljawUTcmV0dXJuIGZuU3VibWl0MSgpO2QCBw9kFgZmDw8WAh4EVGV4dAUKMTMvMDEvMjAxNmRkAgIPFgIeB09uQ2xpY2sFIk9uQ2FsQ29udHJvbDFDbGljaygpO3JldHVybiBmYWxzZTtkAgQPD2QWAh4Fc3R5bGUFIURJU1BMQVk6IG5vbmU7IFBPU0lUSU9OOiBhYnNvbHV0ZRYEAgEPFgIfAgUlQ2xvc2VDYWxDb250cm9sMUNsaWNrKCk7cmV0dXJuIGZhbHNlO2QCAw88KwAKAQAPFgIeAlNEFgEGAEDseqwb0whkZAIJDxBkEBUdAjI5AjI4AjI3AjI2AjI1AjI0AjIzAjIyAjIxAjIwAjE5AjE4AjE3AjE2AjE1AjE0AjEzAjEyAjExAjEwATkBOAE3ATYBNQE0ATMBMgExFR0CMjkCMjgCMjcCMjYCMjU" & _
"CMjQCMjMCMjICMjECMjACMTkCMTgCMTcCMTYCMTUCMTQCMTMCMTICMTECMTABOQE4ATcBNgE1ATQBMwEyATEUKwMdZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dkZAILDw8WAh4HVmlzaWJsZWhkZAIND2QWAmYPZBYCZg9kFgYCAQ8PFgIfAWVkZAIDDw8WAh8BBQIxMWRkAgUPDxYCHwEFEzMwLzAxLzIwMTYgMTI6MjY6MTJkZAIPDxYCHgtfIUl0ZW1Db3VudAIPFh4CAQ9kFggCAQ8PFgIfAQUZxJDDtC1sYSBN4bu5IChVU0QgNTAtMTAwKWRkAgMPDxYCHwEFBjIyLDE1MGRkAgUPDxYCHwEFBjIyLDE3MGRkAgcPDxYCHwEFBjIyLDI0MGRkAgIPZBYIAgEPDxYCHwEFF8SQw7QtbGEgTeG7uSAoVVNEIDUtMjApZGQCAw8PFgIfAQUGMjIsMTQwZGQCBQ8PFgIfAQUGMjIsMTcwZGQCBw8PFgIfAQUGMjIsMjQwZGQCAw9kFggCAQ8PFgIfAQUcxJDDtC1sYSBN4bu5IChExrDhu5tpIDUgVVNEKWRkAgMPDxYCHwEFBjIyLDEzMGRkAgUPDxYCHwEFBjIyLDE3MGRkAgcPDxYCHwEFBjIyLDI0MGRkAgQPZBYIAgEPDxYCHwEFCkLhuqNuZyBBbmhkZAIDDw8WAh8BBQYzMSwzOTNkZAIFDw8WAh8BBQYzMSw0ODdkZAIHDw8WAh8BBQYzMSw3OTBkZAIFD2QWCAIBDw8WAh8BBRTEkMO0LWxhIEjhu5NuZyBLw7RuZ2RkAgMPDxYCHwEFBTIsNTAwZGQCBQ8PFgIfAQUFMiw4NDFkZAIHDw8WAh8BBQUyLDg2OGRkAgYPZBYIAgEPDxYCHwEFEEZyYW5jIFRo4buleSBTxKlkZAIDDw8WAh8BBQYyMSw1NDhkZAIFDw8WAh8BBQYyMSw2MTNkZAIHDw8WAh8BBQYyMSw4MjFkZAI" & _
"HD2QWCAIBDw8WAh8BBQtZw6puIE5o4bqtdGRkAgMPDxYCHwEFBjE4Mi4wOGRkAgUPDxYCHwEFBjE4Mi42M2RkAgcPDxYCHwEFBjE4NC4zOWRkAggPZBYIAgEPDxYCHwEFC8OQw7QtbGEgw5pjZGQCAw8PFgIfAQUGMTUsNjA3ZGQCBQ8PFgIfAQUGMTUsNjU0ZGQCBw8PFgIfAQUGMTUsODA1ZGQCCQ9kFggCAQ8PFgIfAQUOw5DDtC1sYSBDYW5hZGFkZAIDDw8WAh8BBQYxNSw3NzRkZAIFDw8WAh8BBQYxNSw4MjFkZAIHDw8WAh8BBQYxNSw5NzRkZAIKD2QWCAIBDw8WAh8BBRHDkMO0LWxhIFNpbmdhcG9yZWRkAgMPDxYCHwEFBjE1LDQ3N2RkAgUPDxYCHwEFBjE1LDUyM2RkAgcPDxYCHwEFBjE1LDY3M2RkAgsPZBYIAgEPDxYCHwEFDMSQ4buTbmcgRXVyb2RkAgMPDxYCHwEFBjIzLDg2OWRkAgUPDxYCHwEFBjIzLDk0MWRkAgcPDxYCHwEFBjI0LDE3MWRkAgwPZBYIAgEPDxYCHwEFE8OQw7QtbGEgTmV3IFplYWxhbmRkZAIDDw8WAh8BBQYxNCwyMjhkZAIFDw8WAh8BBQYxNCwyOTlkZAIHDw8WAh8BBQYxNCw0NTFkZAIND2QWCAIBDw8WAh8BBQ1CYXQgVGjDoWkgTGFuZGQCAw8PFgIfAQUDNjA0ZGQCBQ8PFgIfAQUDNjE5ZGQCBw8PFgIfAQUDNjMwZGQCDg9kFggCAQ8PFgIfAQUKS3JvbmUgTmF1eWRkAgMPDxYCHwEFAS1kZAIFDw8WAh8BBQUyLDU0MGRkAgcPDxYCHwEFBTIsNTgwZGQCDw9kFggCAQ8PFgIfAQUcTmjDom4gRMOibiBU4buHIFRydW5nIFF14buRY2RkAgMPDxYCHwEFAS1kZAIFDw8WAh8BBQUzLDM0NGRkAgcPDxYCHwEFBTMsNDIxZGQYAQU" & _
"eX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFDEltYWdlQnV0dG9uMWzDLId6q8saG7NbAU5ytW3%2BF9zZW1dSuZtUS1Hbllls&__VIEWSTATEGENERATOR=0F3EB817&__EVENTVALIDATION=%2FwEdAMsB7mjWZqvSFijQylYdBu3EehmMsIWY7eTvzbdZBT5OBwoPPQMAd0p8aMuHxQ9x8l3i6g%2F%2FgkX5u8kNLY5sDhKqzHVpLq8gpu7jBuEhgs%2F1hE%2BYfhAfNxdnSWDHs7GzUCftTV9ALjwesx%2Ffkgobjeso81IeyJxq6Sn3tz%2BhvPWJmn55beNRktHxnII4DkDedXkuHX56C1YvFxkbGnX8LkxV6J8lagrMYgNdipqRWrlVNz907o4p6zFnEQ0suG8jUgPohbxOA%2BYbPa1dc6hk2jgosDMacLDyJiTSbnE%2FkcrYxDMHA4j8c53BE9ovykiR9ORoJhtx09WhvNF%2FeOqy%2FG0XbYq%2Byy91Q7yYoZp6gcwu%2BcRb%2FUZktw9W40DL8M51%2BfFtWku49M7cJA1ZMB2h9SMVEBFZwLDPSYamJvh6hcUmAtjnaGrtvkuZmu9cgq6%2BSqiHKmr2os8PN%2Bzmny8vunykEGtEg8Uh5Nc0XgUyKx5HzGoRS834Y5k1MHENOtC%2Fegdg1sAIO0RQE6Mbp295ff%2Bgc0bMza7P%2FK4XLTR19guNvNsmxNoQVDplULzZWWIvoKhn0fLoEcHs%2F1XnVLOGgAuthB46UP4Chj6IvyRZSXZ%2F0bJMNSnAtQy6hLYi0Zb1YuqNtcmLBDRpNOAXogSA7RQDHbl2AQSsFm68ukqTm1uPiFw91HdK1hrDghEPuzYUGKiY31MDnsfSBa2LQ2XkZG0phcZA0Razmcs94DWT2XrcS4KsU6UZOUkTUmzvrHQloI1Z%2ByZYDY%2Ftlcj8oXJfF7zs9ciZJZ9x74EfMgVm" & _
"sKaTJUf%2BLoTYlbEgiN%2BqL3tP%2BT4zOwfx4yPXZ24KHoUeNiQ4NmpkNsJ0z1YeA3fE6utY6PqoXUqV7%2FEf5%2F0TLHr7yJPdcdxFtzzFGggEskpXPxSOu0L%2B6S2K8e8EyrEpuMxPVQZOoJu7T1rHFiumoZY1GkSwxVVw2R1RcTY4hI%2FqszwBYehQPEL4FxG7c0y8Q%2F7EpwlJ8BsM%2Fpo2uJGWT8Poc5xoXtQ44ktCZ%2B6Zda%2FF8wCzrhyX%2B%2FNyGIFf46ug7mDA%2F40RU9aH%2F0TsWIHKIBZbAC1O0s9X8pECCWNj3AmITydh9fA%2BvVUQHVDV76Pjdn1WRa156DHY7Gl243bkd2anv1MdAbHX4tmqwd0bE4uAP9jdfSxXRU5rHZ9cN1HyUhMUjMmv93GolJw5%2B55dERx1VV7CszSQhDVLK%2BzoYffOsYW5P9bbMP8ho8cI76i0rpxIY3W%2BAqBXIrwpMThozmgvebZRhi3kqmyhINmywrseroaKS3RZ1OpezvioJfl9O8wwkqgqjWcnYNScnSytoI1Sadc2t8mbHAHPKb7VDo0eME5%2Fc0D4EphCcXNE6oGNjTCkAEVzd5DJaWVx4STip6uKyywM1tGPfQnND3gs5JMtDXcERM7ge%2FQUnr1GtZ%2BXzGQAOqp3Qq1keZV%2BfJAQGPJSwnmARTlVUPre2SggSibiWd1VkRYhPJA8RYqEK3gV9Mn7XgVZ0xczMhNN%2Be%2BwmN47UYhvacQuGpmnR%2B8JxrlkLCIkL6OuTp9JXrWHlv6lzuaE4CtIi%2F05NULIKxgMBflmJalDeNYC1OGkWU%2ByL2OT%2Buk9BDgIw4ISVgGhbVe4Kb%2Ba%2B16DYaKPONuWfsJazLk9BnpMaozxe3%2BP5mjfYV0NnT2UZG6nVWYEe60mi2a2tZ2aB1cJX5deWlzCgJ2S5%2FDRBdwH6n4KfWkF1firEARRtjFD5w5ZL4" & _
"rijt8IYj5Hr7Q8pJ%2B0tE4Qz5jpArmhxnOikrpFVl3WoWCG2K56aqbS9V%2FoJws72yeyAtjC64W%2FtLlJoZxogNETJrD1iHVk%2BXSbuO79crTX6pnv17l8inJZ2D3GlojJUOUcmcw%2FdqUWQieW0tBL6bfBcUzkqRwJhq4TE8bhKc975GXbXYjW3Q57TU7IjAISAQC1%2B0AGhBmVKnwbeHPtIDxA3q66FNyb1zoA%2B6V5AMzRShlWx4KMaEGAOOWBA5DSdWN8Qprr%2BR4OPMna2YqnU4r%2BYjgoEpwB578CYjRbWVpDaE3RiP0yXf5if3QOlCngOzPliXlQIbNqMzzvSSM1di%2FQkjhBbrF5TwpJ9O12HqxF7Go6QgPJaQlb5qARi1ankwgjbeBrMvKakBKon1K5yzqNOiDs3da6058v67UMhOu1rsbyTb9Mj2VgFc9Qdvof%2B8tV%2Fl1OcRn5fjucdwOc21RRDEmTlmxQ9M74NtOGuzKHHvOdnCKo1WBw4gA5FBk%2F2maNwHf4%2FwF08ukL1oqtSHuPYaj38rbNJMKvyWYtt7UHzS30eSYnrDWVDjQyUwsjvhlt20WfjMST3Ua5LRsGHXr84%2B%2BR8dNAfRd6NpJLZu4rzN2KFOA8fafZg2FqbuEgJ7R8qURIVh3qsWcJnshjJKqHJaY9MhtaxpfQXCZCJDKske0MJ7a1dYsSlo4cciD5inWx5elZHIyMhEWVYDiaOV2yefloecSVD34uHBrhcPEdFbzGw5wyUrCSWbz2TL0WxHY5XbqyBvtbP1Jlv5UUzDigXBgnO6qsd2ajyhYjWleRw%2B09Nzol4jigRJJGVcKnLyM4qZXqLk25W5rX5lbDRgZq8NUrcRzQxU%2FEAHurTrJVHdy%2BVdBDqYl0%2FfHrHDCBTyKoGU%2FB6mo1SS24QCEfwbLItbTDjsKRcj09jQd%2FqQtsZyPSYB7AlTNliqPHzqOhzVOMx%2BfGfwPq" & _
"Gv7fmDDpkAKvHlFmeWUpJ6tT4i4qu0QnuS41PpcDp8XocHnFRUCBWvy1%2FmbUE3f5nymxdW9vMyI0VtDAKKK0u5ULVsUOHDHN4qZE2J%2FmJX8zjtxEPt6K8289j3sYMbL84cZz2nYGsOu0ufMTLrnqAJYSHZx%2BzsM074qj06wbXtoK7C%2FOYwYYVQEDWJ%2FGrEbFZI6FA4YxeuEi%2B6e04g321iQFsGa6AiXBBBxwAVZ7toh4Zp4OdYu%2BxI0Z4zDK%2FX%2F7RiF50li7bR27fDrtsuqy3XO3Q74Oy8h2FP9Jssd2AS1Un7t2p0hJw%2FuxkpMtJPz6sipoqnIlMFFryro0hwfKWlqjS9rWndLsEU6zRNft2eQJgwLDgy9a%2F2296E5UVZzYcJmXd6SWHIJxFMMWIZwSllCRk12muRK8kj8gCHUd2KZCv75mRZz8aC6xCPdPTVlnpPgFlhD4%2BMIjNkKu%2BdX6px7KYsiUJj9cWK9Z3XjJRB6YrR52c9mz1iGovqsnL787hlM06C4Qx3vzOtOPBu5aPQxKmrXpmLkuDKTO%2Brolls60rhf9lSh4knbfGUrm190edWTGVb1%2FYCnpo2GlsBbqM0lQcPdrcXQg5XOzT4%2BWbbUJ1d9VcoSIL5MNjwEqzZPMU86BT5Vmg%2F%2FlZplQrp8eFG4cMUF%2FueigOKAZSIGfXQkx80A0EFHZlL7owG0WG0fDnnJ8ugIXpgKu8gpT2HGvM4L6MJOBTlsRsAnj%2BhQdWdZCzC%2B5f1afFNBE0icuv8bae26IOX9ueTNN1CRwubamEP2tZERivsRAMKtQqhApTRGbYY7siQjIy0h0Wx9NkUAyjapRc0kaXBVhNJq%2F8CA%2BckrAu6bG2tHY0dx28f%2Fx7i%2B0w3FpnqXlwZgI3H9QzBGt3xiFWLM0I1kWg9krVcfqiQkSZY6tWxSlZuy8U4Tljy7pNhGTecufDTpnbc%2FB0tcSqCTa" & _
"ML%2FkEcxFdN0%2Fudp3Xe4Bo6KRwSfsi7DuyhSawOc%2B30zlupSyOT1ueUbzy4zggYDwsAIfNkggK0SxOdLA9W50fM0Gy2ttnNRX1jRNPeW%2Fu31gDFU7GCnLL%2BSipD1vDOdb6zP8evclM1Z2KtXOuJqJmmtIpr7HD7Pe7347aU8WmwOOe47bG9dR42CoMoPMKCyYOnrUueuYhZSSJlrG0Yh4xavwFCXcKn%2BFUZSiyHL0cNC2ieSFmrv8GgAgVQshqqvufKXicnvagTZ3ncK8RcSIGZ63LOFXLFySuULc4fhesbcaYU1iQYnJeZeZMNW68RKoYtkE6tza%2B45pKy5o5zQSaV4fhLv57o2r4FRIaImxr0RbB5Zig7YcMq0zBOyh5zWJHSEdYagbKqBowUkC46IpQg161Kab6oy1%2BiDDiE43SMzF2RUbIJ5pc%2FQrpYDoQ5pSzIdGv%2BGV5UIn5EZ1vaMbu5LX2v%2F9rNLQSvkxufikRLvMXuPve30xUHk84%2B84acWLnEDUKEDM%2Blxu4PMFe08PSU07pB3NOc6J%2FRHePh5TrhuZaaCUKreVHmFc7s6XUfsC5Y6m8nkBvQZWx%2FDuo5e774KpGa6AVV8sTJRO%2B%2BWvBkzYOGp%2BlcUueFiDnJVr%2BbCP5Zs1JWpk%2FYAMSgwY6oes4yimQlFD3r5IL9B5%2FbhVZSOrng%3D%3D&dtNoticeday1=&ddlBranch=1000&ImageButton1.x=40&ImageButton1.y=13&CalControl1%24TextBox1=" & ngay & "&ddlQuoteCount=" & bang_so


req.Open "POST", "https://eximbank.com.vn/WebsiteExrate/ExchangeRate_vn_2012.aspx", False
req.setRequestHeader "Content-Length", Len(strData)
req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
req.send (strData)
Dim t
t = req.responseText
t = Mid(t, InStr(2999, t, "<table id=""tb1"" width=""690"" border=""0"" cellpadding=""0"" cellspacing=""0"">"))
t = Left(t, InStr(2999, t, "date_hieuluc") + 333)
t = Left(t, InStrRev(t, "</table>") + 8)
ex = t
End Function


Sub teo()
    Dim t
    t = ex("21/01/2016", 22)
    Debug.Print Left(t, 999) & vbCrLf & Right(t, 999)
End Sub
Vô tình lại phát hiện ra là code hờ tờ mờ lờ của mấy chú ai ty ngân hàng không ngờ còn lủng củng vậy... Ôi sao mà đắng cái lòng :.,
 
Lần chỉnh sửa cuối:
Upvote 0
Đánh vật với mớ chữ rốt cuộc cũng làm ra cái này
Mã:
Function ex(ngay, bang_so)Dim doc As Object, req As Object, r As Long, arr(1 To 100000, 1 To 6), k As Long
Dim strData As String, VIEWSTATE As String, VIEWSTATEGENERATOR As String, VIEWSTATEENCRYPTED As String
Dim tcount As Double
tcount = Timer
Set doc = CreateObject("htmlfile")
Set req = CreateObject("Msxml2.XMLHTTP")
strData = _
"__EVENTTARGET=
 
Lần chỉnh sửa cuối:
Upvote 0
Làm bác đánh vật cũng là thành công của IT bank rùi,

IT bank là trông mấy cái máy tính, còn mấy cái sercurity thì thuê ngoài bác ah,
Ý tôi là cách mấy ổng lên code hờ tờ mờ lờ (HTML) cơ, nói nôm na là lên giao diện web ấy. Cách họ dùng 10 năm về trước còn thịnh chứ sau này xu hướng không còn code web kiểu đó nữa. HTML lủng củng thì chỉ làm tốn thêm băng thông vô ích và đánh vật mấy tay muốn bắt dữ liệu còn cái mớ loằng ngoằn ở trên thì nó thuộc về form rồi.
 
Lần chỉnh sửa cuối:
Upvote 0
Đánh vật với mớ chữ rốt cuộc cũng làm ra cái này
Vô tình lại phát hiện ra là code hờ tờ mờ lờ của mấy chú ai ty ngân hàng không ngờ còn lủng củng vậy... Ôi sao mà đắng cái lòng :.,

anh ơi em chép về thấy toàn ra dữ liệu bảng 22 của ngày 13/1/2016 chứ đâu phải của ngày 21/1/2016
anh kiểm tra lại giúp
 
Upvote 0
ủa ở trên bạn nói là lấy hết cả năm 2015 mừ , sao xuống đây lại chỉ lấy 1 ngày . híc !$@!!!$@!!!$@!!

bạn cùng làm với tôi nhé , ở đây có 3 Sub
1/sub hello dùng để Post Request đến trang vietcombank

Mã:
Public Sub hello()
Dim doc As Object, req As Object, r As Long, arr(1 To 100000, 1 To 6), k As Long
Dim strData As String, VIEWSTATE As String, VIEWSTATEGENERATOR As String, VIEWSTATEENCRYPTED As String
Dim tcount As Double
tcount = Timer
Set doc = CreateObject("htmlfile")
Set req = CreateObject("Msxml2.XMLHTTP")
getHiddenParam VIEWSTATE, VIEWSTATEGENERATOR, VIEWSTATEENCRYPTED


'42005  42369  :  1/1/2015 -> 31/12/2015
k = 1
For r = 42005 To 42300 Step 1
    strData = "__VIEWSTATE=" & VIEWSTATE & _
          "&__VIEWSTATEGENERATOR=" & VIEWSTATEGENERATOR & _
          "&__VIEWSTATEENCRYPTED=" & VIEWSTATEENCRYPTED & _
          "&ctl00%24Content%24BranchList=[COLOR=#ff0000][B]68[/B][/COLOR]" & _
          "&ctl00%24Content%24DateText=" & WorksheetFunction.EncodeURL(Format(r, "dd/MM/yyyy")) & _
          "&ctl00%24Content%24ViewButton=xem"
    req.Open "POST", "http://www.vietcombank.com.vn/exchangerates/default.aspx", False
    req.setRequestHeader "host", "www.vietcombank.com.vn"
    req.setRequestHeader "Content-Length", Len(strData)
    req.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    req.send strData
    doc.body.innerHTML = req.responseText
    getdatafromResponse arr, k, doc
Next


Sheet2.Range("A2").Resize(k, 6).Value = arr
MsgBox Timer - tcount
End Sub

mã số 68 là của Hội Sở chính , các cơ sở khác thì dùng mã số khác

2/sub getHiddenParam để lấy các giá trị ẩn trong trang web để có cái mà gửi Request

Mã:
Private Sub getHiddenParam(outVIEWSTATE As String, outVIEWSTATEGENERATOR As String, outVIEWSTATEENCRYPTED As String)
Dim req As Object, doc As Object
Set req = CreateObject("Msxml2.XMLHTTP")
Set doc = CreateObject("htmlfile")
req.Open "GET", "http://www.vietcombank.com.vn/exchangerates/default.aspx", False
req.send
doc.body.innerHTML = req.responseText
outVIEWSTATE = WorksheetFunction.EncodeURL(doc.getElementById("__VIEWSTATE").Value)
outVIEWSTATEGENERATOR = WorksheetFunction.EncodeURL(doc.getElementById("__VIEWSTATEGENERATOR").Value)
outVIEWSTATEENCRYPTED = WorksheetFunction.EncodeURL(doc.getElementById("__VIEWSTATEENCRYPTED").Value)
End Sub

3/sub getdatafromResponse () dùng để xử lý giá trị nhận về từ Server

Mã:
Private Sub getdatafromResponse(arr, k As Long, doc As Object)
Dim tds As Object, lenTds As Long, r As Long, table As Object, dateCreated As String


Set table = doc.getElementById("ctl00_Content_ExrateView")
dateCreated = table.parentElement.NextSibling.innerText
dateCreated = Mid(dateCreated, InStr(dateCreated, "lúc") + 4, 10)
'MsgBox dateCreated
Set tds = table.getElementsByTagName("td")
lenTds = tds.Length


Do While r + 4 < lenTds
    arr(k, 1) = "'" & dateCreated
    arr(k, 2) = tds.Item(r).innerText
    arr(k, 3) = tds.Item(r + 1).innerText
    arr(k, 4) = tds.Item(r + 2).innerText
    arr(k, 5) = tds.Item(r + 3).innerText
    arr(k, 6) = tds.Item(r + 4).innerText
    r = r + 5: k = k + 1
Loop


End Sub

máy của mình lấy hết cả năm thì hết 2 phút
lưu ý : 1 số ngày , 1 số cơ sở không có dữ liệu
hàm WorksheetFunction.EncodeURL nghe đồn chỉ có từ đời excel 2013 trở lên
bạn có thể vui lòng chỉnh sửa lại theo ý bạn để cộng đồng có tài liệu tham khảo nhé , chúc vui
Bạn có thể gửi file được không? Mình không tải được
 
Upvote 0
Web KT
Back
Top Bottom