dungluyen2119
Thành viên mới
- Tham gia
- 24/3/23
- Bài viết
- 15
- Được thích
- 6
Em không có file sẵn các Anh/Chị giúp em với ạ. Em cảm ơn nhiều ạ.
Phải chăng là bạn chờ ai đó tạo file, tạo ảnh đưa vào folder, viết code lấy ảnh theo đường dẫn, đổi định dạng ảnh, dán ảnh đó vào ô trong file cho bạn chăng.Em không có file sẵn
Bậy nà. Còn phải đợi về nhà mới có máy thử. Hiện tại đang hỏi trên điện thoại.Phải chăng là bạn chờ ai đó tạo file, tạo ảnh đưa vào folder, viết code lấy ảnh theo đường dẫn, đổi định dạng ảnh, dán ảnh đó vào ô trong file cho bạn chăng.
Vâng , em cảm ơn anh. Chính vì do là mỗi máy folder ảnh khác nhau nên em mới không có file sẵn. Em cảm ơn anh đã hiểu mong muốn của em.đoạn code của bạn đây, hy vọng nó work ;-)
Sub CopyAnhVaoExcel()
Dim folderPath As String
Dim imagePath As String
Dim imageName As String
Dim imageFormat As String
Dim ws As Worksheet
Dim rng As Range
' Đặt đường dẫn đến thư mục chứa ảnh
folderPath = "Đường dẫn đến thư mục của bạn"
' Đặt định dạng ảnh muốn chuyển đổi (vd: ".png")
imageFormat = ".png"
' Đặt địa chỉ ô trong Excel để dán ảnh
Set ws = ThisWorkbook.Sheets("Sheet1") ' Thay đổi tên Sheet1 nếu cần
Set rng = ws.Range("A1") ' Thay đổi ô A1 thành ô mong muốn
' Tắt các tính năng hiển thị ảnh trước đó
Application.ScreenUpdating = False
' Lặp qua tất cả các file trong thư mục
imagePath = VBA.FileSystem.Dir(folderPath & "\*")
Do While imagePath <> ""
' Lấy tên file và đuôi file
imageName = VBA.FileSystem.GetBaseName(imagePath)
' Kiểm tra xem file có đúng định dạng ảnh muốn chuyển đổi hay không
If VBA.Right(imagePath, Len(imageFormat)) = imageFormat Then
' Sao chép ảnh vào ô trong Excel
ws.Pictures.Insert(folderPath & "\" & imagePath).Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Width = rng.Width
Selection.ShapeRange.Height = rng.Height
Selection.ShapeRange.Left = rng.Left
Selection.ShapeRange.Top = rng.Top
' Đổi tên ảnh trong Excel
Selection.Name = imageName
' Chuyển đổi định dạng ảnh sang PNG
Selection.ExportAsFixedFormat xlTypePNG, folderPath & "\" & imageName & imageFormat
End If
' Tiếp tục với file tiếp theo
imagePath = VBA.FileSystem.Dir()
Loop
' Bật lại tính năng hiển thị ảnh
Application.ScreenUpdating = True
' Hiển thị thông báo khi hoàn thành
MsgBox "da copy va chuyen doi thanh cong", vbInformation
End Sub
Lưu ý:
Trong mã trên, bạn cần thay đổi giá trị của biến folderPath thành đường dẫn thư mục chứa ảnh của bạn. Biến imageFormat sẽ định nghĩa định dạng ảnh muốn chuyển đổi (ví dụ: ".png"). Đồng thời, hãy thay đổi giá trị của biến ws và rng để chỉ định ô trong Excel mà bạn muốn dán ảnh vào.
Mã sẽ lặp qua tất cả các file trong thư mục và chỉ xử lý các file có đúng định dạng ảnh muốn chuyển đổi. Nó sẽ sao chép ảnh vào ô trong Excel và chuyển đổi định dạng ảnh sang PNG.
Chúc may mắn !