Thay đổi hình ảnh link trực tuyến theo lựa chọn

Liên hệ QC

giang127

Thành viên hoạt động
Tham gia
24/12/07
Bài viết
137
Được thích
8
Chào các bác,

Mong các bác giúp đỡ, mình có file danh sách ứng viên như trong file đính kèm. Muốn đổi hình ảnh ở 2 chỗ:

1. Trạng thái ứng viên:
Đổi ảnh trạng thái khi ô I 2 thay đổi
Link ảnh trạng thái online
- Nghỉ thai sản
- Đang làm việc
- Đã nghỉ

2. Ảnh avatar ứng viên:
Đổi ảnh đại diện ứng viên khi ô I 2 thay đổi
Link ảnh đại diện theo cột J sheet "Data"

Mình cũng tìm trên mạng nhưng việc sử dụng đổi ảnh theo link online rất ít, chủ yếu là phải tải ảnh ứng viên về máy tính. Do mình có danh sách hàng nghìn ứng viên không thể tải về máy tính được. Nên muốn ảnh sẽ đổi theo link online ạ.

Mong chờ cao nhân chỉ dạy.
 

File đính kèm

  • Link ảnh.xlsx
    51.9 KB · Đọc: 3
Cho
Chào các bác,

Mong các bác giúp đỡ, mình có file danh sách ứng viên như trong file đính kèm. Muốn đổi hình ảnh ở 2 chỗ:

1. Trạng thái ứng viên:
Đổi ảnh trạng thái khi ô I 2 thay đổi
Link ảnh trạng thái online
- Nghỉ thai sản
- Đang làm việc
- Đã nghỉ

2. Ảnh avatar ứng viên:
Đổi ảnh đại diện ứng viên khi ô I 2 thay đổi
Link ảnh đại diện theo cột J sheet "Data"

Mình cũng tìm trên mạng nhưng việc sử dụng đổi ảnh theo link online rất ít, chủ yếu là phải tải ảnh ứng viên về máy tính. Do mình có danh sách hàng nghìn ứng viên không thể tải về máy tính được. Nên muốn ảnh sẽ đổi theo link online ạ.

Mong chờ cao nhân chỉ dạy.
em hỏi thôn tin ứng viên này ạ :) 1727687252409.png
Bài đã được tự động gộp:

Với URL trực tuyến, Excel không hỗ trợ trực tiếp việc chèn hình ảnh từ URL thông qua các phương pháp nội bộ. Tuy nhiên, bạn có thể sử dụng VBA để tải hình ảnh từ URL về máy tính và sau đó chèn vào Excel. Điều này yêu cầu một bước tải ảnh về trước khi hiển thị.
 
Dưới đây là đoạn code bác có thể tham khảo!
Mã:
Private Declare PtrSafe 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

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pic As Picture
    Dim imgPath As String
    Dim imgCell As Range
    Dim picCell As Range
    Dim localFilePath As String
    Dim downloadResult As Long
    Dim maxWidth As Single
    Dim maxHeight As Single
    Dim aspectRatio As Single

    Set imgCell = Me.Range("A1")
    Set picCell = Me.Range("A2")

    If Not Intersect(Target, imgCell) Is Nothing Then
        imgPath = imgCell.Value
        localFilePath = Environ("TEMP") & "\temp_image.jpg"
        downloadResult = URLDownloadToFile(0, imgPath, localFilePath, 0, 0)

        On Error Resume Next
        For Each pic In Me.Pictures
            If pic.TopLeftCell.Address = picCell.Address Then
                pic.Delete
            End If
        Next pic
        On Error GoTo 0

        If Dir(localFilePath) <> "" Then
            Set pic = Me.Pictures.Insert(localFilePath)
            pic.TopLeftCell = picCell

            maxWidth = 300
            maxHeight = 400

            If pic.Width > maxWidth Or pic.Height > maxHeight Then
                aspectRatio = pic.Width / pic.Height

                If aspectRatio > 1 Then
                    pic.Width = maxWidth
                    pic.Height = maxWidth / aspectRatio
                Else
                    pic.Height = maxHeight
                    pic.Width = maxHeight * aspectRatio
                End If
            End If
        End If
    End If
End Sub

Hướng dẫn:​

  1. Mở Excel và nhấn Alt + F11 để mở VBA Editor.
  2. Dán mã trên vào trong module Sheet của worksheet bạn muốn áp dụng.
  3. Quay lại Excel, nhập URL ảnh vào ô A1. Ảnh sẽ được tải xuống và hiển thị ở ô A2.
Và kết quả như hình dưới đây!

SAOug.gif
 
Web KT

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

Back
Top Bottom