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é.
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 ạ.
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
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 ?
Ồ, 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
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 =)) =)) =))
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
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=
Ý 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.
Đá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
ủ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