Xin hỏi cách viết code để lấy hình từ web vào cell

Liên hệ QC

conglynepa

Thành viên mới
Tham gia
23/5/09
Bài viết
6
Được thích
0
Do nhu cầu cần lấy hình từ 1 website đưa vô 1 cell, thông tin url được tham chiếu từ 1 cell khác. Đã thử Record Macro và Insert Picture va nhập URL của 1 hình, hiển thị không vấn đề, nhưng vô VBA để tìm module và macro thì không tìm thấy cái đối tượng picture và các thuộc tính của nó để có thể tùy biến url và hiển thị, hic.


Đã search trên các web khác nhưng chưa hiểu rõ cách làm, mong các bạn chỉ giáo.
 
Do nhu cầu cần lấy hình từ 1 website đưa vô 1 cell, thông tin url được tham chiếu từ 1 cell khác. Đã thử Record Macro và Insert Picture va nhập URL của 1 hình, hiển thị không vấn đề, nhưng vô VBA để tìm module và macro thì không tìm thấy cái đối tượng picture và các thuộc tính của nó để có thể tùy biến url và hiển thị, hic.


Đã search trên các web khác nhưng chưa hiểu rõ cách làm, mong các bạn chỉ giáo.
Giả sử cell A1 chứa đường link đến Pic, ta có code:
PHP:
Sub PicFromWeb()
  With ActiveSheet
   .Pictures.Insert (.Range("A1"))
  End With
End Sub
Việc còn lại của bạn là chỉnh lại vị trí và size của hình này cho đúng vị trị bạn mong muốn
 

File đính kèm

Upvote 0
vẫn chưa làm được

Giả sử cell A1 chứa đường link đến Pic, ta có code:
PHP:
Sub PicFromWeb()
  With ActiveSheet
   .Pictures.Insert (.Range("A1"))
  End With
End Sub
Việc còn lại của bạn là chỉnh lại vị trí và size của hình này cho đúng vị trị bạn mong muốn


Mình đã chạy thử code của bạn giúp bằng các Run Macro nhưng nó shutdown excel luôn.
 
Upvote 0
Mình đã chạy thử code của bạn giúp bằng các Run Macro nhưng nó shutdown excel luôn.
Vậy thì máy tính bạn chắc có vấn đề! Tôi đã thử trên nhiều máy tính khác nhau, hoàn toàn không có hiện tượng đó!
Hơn nữa code này quá đổi bình thường! Nếu bạn record macro cũng nhận được code gần tương tự! Ví dụ tôi record macro và được code như sau:
PHP:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 5/24/2009 by User
'

'
    ActiveSheet.Pictures.Insert("http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=26992&d=1243063955").Select
End Sub
Có vấn đề gì đâu chứ
 
Upvote 0
Hic hic hic

Vậy thì máy tính bạn chắc có vấn đề! Tôi đã thử trên nhiều máy tính khác nhau, hoàn toàn không có hiện tượng đó!
Hơn nữa code này quá đổi bình thường! Nếu bạn record macro cũng nhận được code gần tương tự! Ví dụ tôi record macro và được code như sau:
PHP:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 5/24/2009 by User
'

'
    ActiveSheet.Pictures.Insert("http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=26992&d=1243063955").Select
End Sub
Có vấn đề gì đâu chứ


Không biết mình có Add thiếu Controls, Component hay gì nữa ko, hic. Mình thì lại ghi macro mà không ra cái gì hết, trong macro chỉ có lệnh xuống dòng, kèm theo đây la file excel mình đang làm. Mục đích là gom thông tin và các chart từ các trang web vè 1 chỗ để dễ xem theo dõi và có thể là sẽ sao lưu 1 số thứ sau này . Trong đó sheetMau là những gì mình có thể thao tác trực quan nhưng lại bất tiện, sheet shStockOnline là những gì mình đang muốn xây dựng để xài. Qui trình:
- Nhập mã Stock(Symbol): có thể lấy từ inputBox, textBox hay 1 nguồn nào đó tùy ý do mình nhập
- Tạo cấu trúc khung dữ liệu và đưa dữ liệu vào dựa trên Symbol(có sử dụng hàm để cho ra url đích theo moi symbol va time chart) đã nhập. Tới đây thì bị tò tí te tò te. Những cái chưa biết cách hoàn thành:
+ Cách code để lấy 1 bảng thông tin từ 1 trang web, ví dụ như ô B2 và D2 của sheetMau được lấy bằng cách vô Data -> From Web để import
+ Cách code để đưa cái hình từ web vào cell mình định sẵn(đừng cho chạy lung tung, kẻo lạc không biết đường về.

Bà con cô bác anh em cao thủ excel, mỗi người nhúng 1 tay vào giúp mình với.
 

File đính kèm

Upvote 0
Bạn có thể cho biết nếu insert picture bằng tay thì bạn làm thế nào? (trình tự)
Excel 2003 làm nó dể dàng, tại sao Excel 2007 lại có khó khăn nhỉ?
---------------
Ah... có khi nào Excel 2007 không có chức năng này không nhỉ? Vì khi tham khảo tại đây:
http://office.microsoft.com/en-us/excel/HA100794091033.aspx
Ta thấy có 2 cách lấy hình từ Web:
1> Click phải vào hình (từ Web page) chọn Save Picture As ---> Lưu hình vào mấy tính ---> Tiếp theo thì Insert bình thường với file hình vừa lưu
2> Click phải vào hình (từ Web page) chọn Copy ---> Vào Worksheet, Click phải trên cell, chọn Paste
Ta thấy chẳng có cách nào Insert trực tiếp từ 1 link cả
Hic...
 
Lần chỉnh sửa cuối:
Upvote 0
Hi

Bạn có thể cho biết nếu insert picture bằng tay thì bạn làm thế nào? (trình tự)
Excel 2003 làm nó dể dàng, tại sao Excel 2007 lại có khó khăn nhỉ?


Đưa con chuột vào cell muốn chèn hình, Vào Menu Insert click Piture trong File name nhập Url chứa hình trang web vào, bấm vào Insert và chọn Link to File. ví dụ như ở file excel mình gửi trong sheetMau ở cell F2 mình đã chèn hình bằng cách đó với Filename là URL: http://ichart.finance.yahoo.com/b?s=BAC
Nếu làm bằng tay thì chắc chết vì có tới cả ngàn cái symbol.
 
Lần chỉnh sửa cuối:
Upvote 0
---------------
Ah... có khi nào Excel 2007 không có chức năng này không nhỉ? Vì khi tham khảo tại đây:
http://office.microsoft.com/en-us/excel/HA100794091033.aspx
Ta thấy có 2 cách lấy hình từ Web:
1> Click phải vào hình (từ Web page) chọn Save Picture As ---> Lưu hình vào mấy tính ---> Tiếp theo thì Insert bình thường với file hình vừa lưu
2> Click phải vào hình (từ Web page) chọn Copy ---> Vào Worksheet, Click phải trên cell, chọn Paste
Ta thấy chẳng có cách nào Insert trực tiếp từ 1 link cả
Hic...

Các cách này đều lấy hình bằng tay, cái mình cần là code của nó. Vì mỗi Symbol nó có nhiều chart để lấy theo thời gian biểu thị của chart. Vấn đề để lấy url file hình của chart thì mình đã làm với hàm
Public Function getUrlImage(Symbol As String, StrTimeChart As String) As String
nó sẽ trả về URL file hình mình muốn.
Tới đây thì hem biết làm cách nào để code đưa hình vô cell với URL hình hày
 
Upvote 0
Công nhận căng thật (với Excel 2007)
Tôi gữi code này, hy vọng bạn có thể tùy biến nó ---> Nguyên tắc làm việc của code là Download file hình về máy tính trước (cùng thư mục chứa file Excel) sau đó Insert bình thường
PHP:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Sub InsertPic()
  Dim strSavePath As String, ret As Long
  strSavePath = ThisWorkbook.Path & "\" & "PicFile.bmp"
  ret = URLDownloadToFile(0, [A2], strSavePath, 0, 0)
  Sheet1.Pictures.Insert (strSavePath)
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
lấy bảng dữ liệu

Công nhận căng thật (với Excel 2007)
Tôi gữi code này, hy vọng bạn có thể tùy biến nó ---> Nguyên tắc làm việc của code là Download file hình về máy tính trước (cùng thư mục chứa file Excel) sau đó Insert bình thường
PHP:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Sub InsertPic()
  Dim strSavePath As String, ret As Long
  strSavePath = ThisWorkbook.Path & "\" & "PicFile.bmp"
  ret = URLDownloadToFile(0, [A2], strSavePath, 0, 0)
  Sheet1.Pictures.Insert (strSavePath)
End Sub

Còn cách lấy bản dữ liệu thì có giải pháp lấy code được ko bạn.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom