Nạp tên hình ảnh tự động vàoListBox (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Rùa Con 1080

Thành Viên Sao Chép 2
Tham gia
4/5/16
Bài viết
351
Được thích
47
Giới tính
Nữ
Chào mọi người, em có file có Form, khi click vào tên hình trong ListBox1 thì hiện Hình vào Emage1. Trong File chỉ có 7 hình,nên em lấy List của ListBox1 bằng Sheet1!A2:B. (Em gỏ tên hình vào A2:A8.)Vì trong file chỉ giả dụ có 7 hình, nhưng thục tê có rất nhiều hình, nếu gỏ bằng tay thì rất lâu và không chính xác. Vậy em nhờ mọi người chỉnh code làm sao để khi em coppy hình vào "Hinh" thì tự lấy tên hình vào ListBox1.
Mong mọi người giúp đỡ.
 

File đính kèm

File "Hinh" của em có rất nhiều hình với các tên khác nhau ví dụ như: ho.jpg, cho.jpg, lon.jpg, chon.jpg, huou.jpg, bao.jpg, hoahong.jpg, hoacuc.jpg, hoalan.jpg, hoahue.jpg, hoasua.jpg, ..v...v...v..
Có code nào để khi em coppy các hình vào "Hinh" thì tự động lấy tên của các hình đó nạp vào ListBox1.
Mong mọi người chỉ giáo.
 
Upvote 0
File "Hinh" của em có rất nhiều hình với các tên khác nhau ví dụ như: ho.jpg, cho.jpg, lon.jpg, chon.jpg, huou.jpg, bao.jpg, hoahong.jpg, hoacuc.jpg, hoalan.jpg, hoahue.jpg, hoasua.jpg, ..v...v...v..
Có code nào để khi em coppy các hình vào "Hinh" thì tự động lấy tên của các hình đó nạp vào ListBox1.
Mong mọi người chỉ giáo.
Bạn cần phân biệt File, Folder.
 
Upvote 0
Ý của em là khi coppy một hình hoặc nhiều hình đuôi.JPG vào Folder "Hinh" thì Listbox1 tự cập nhật List.
 
Upvote 0
Mã:
Private Sub UserForm_Initialize()
    Dim pth As String: pth = ThisWorkbook.Path & "\Hinh\"
    On Error Resume Next
    ListBox1.List = GetFileList(pth)
    ListBox1.MultiSelect = fmMultiSelectSingle
End Sub

Private Sub ListBox1_Click()
    With ListBox1
        If .ListCount Then
            Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Hinh\" & .List(.ListIndex))
        End If
    End With
End Sub
'Chép vào 1 module:
Function GetFileList(ByVal StrFolder As String)
Dim fso As Object, ObjFile As Object
Dim Res(), K As Long
Set fso = CreateObject("Scripting.FileSystemObject")
   With fso.GetFolder(StrFolder)
      For Each ObjFile In .Files
         If UCase(fso.GetExtensionName(ObjFile)) Like "JPG" Then
            K = K + 1
            ReDim Preserve Res(1 To K)
            Res(K) = ObjFile.Name
         End If
      Next
   End With
   GetFileList = Res
End Function
 
Upvote 0
Cám ơn Anh befaint nhiều nhiều. (không có nút Thanks). Anh có thể cho hiện trong ListBox1 tên hình không đuôi .JPG được không ah!!
 
Upvote 0
Cám ơn Anh befaint nhiều nhiều. (không có nút Thanks). Anh có thể cho hiện trong ListBox1 tên hình không đuôi .JPG được không ah!!
Mã:
Res(K) = ObjFile.Name
sửa thành:
Res(K) = Left(ObjFile.Name, Len(ObjFile.Name) - 4)

Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Hinh\" & .List(.ListIndex))
sửa thành:
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Hinh\" & .List(.ListIndex) & ".jpg")
 
Upvote 0
Web KT

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

Back
Top Bottom