Lấy tên nội dung của file ảnh vào excel và tự động mở file ảnh khi chọn nội dung đó

Liên hệ QC

vc_đi chơi

Thành viên hoạt động
Tham gia
21/9/19
Bài viết
159
Được thích
32
Em có các bức ảnh (bao gồm tất cả các đuôi có định dạng file ảnh: JPEG, TIFF, GIF và PNG , vv.....) và file excel chứa trong cùng một folder
Em xin được nhờ giúp đỡ vấn đề sau:
Lấy tên file ảnh có chứa trong folder để điền vào cột "Nội dung" trong file excel
Điền theo trình tự chữ cái A, B, C,...., khi điền thì tự động đánh số thứ tự ở cột "Số TT" trong excel.
Khi dữ liệu đã được điền xong thì có thể mở bức ảnh đó bằng cách clik chọn vào ô có chứa nội dung trông cột "Nội dung".
Mong sự giúp đỡ của các thầy (cô), anh (chị).
Em xin cảm ơn!
1111.png
 

File đính kèm

  • Quan Ly Anh.rar
    535.9 KB · Đọc: 18
Mình tải dữ liệu ngân hàng từ internetbangking xuống lưu định dạng file excel, nhưng các dãy số phát sinh ngăn cách hàng ngàn bằng dấu chấm nên không sum tổng được. Mình muốn nhập dữ liệu này vô phần mềm phải làm thủ công xóa từng dấu chấm mới được. Bạn cá cách nào giúp mình , mình vô cùng cảm ơn
 
Mình tải dữ liệu ngân hàng từ internetbangking xuống lưu định dạng file excel, nhưng các dãy số phát sinh ngăn cách hàng ngàn bằng dấu chấm nên không sum tổng được. Mình muốn nhập dữ liệu này vô phần mềm phải làm thủ công xóa từng dấu chấm mới được. Bạn cá cách nào giúp mình , mình vô cùng cảm ơn
Bạn nên đặt một tiêu đề mới. Đừng chen ngang vào bài này. Bạn tạo 01 file mới rồi gửi lên.
 
Mình tải dữ liệu ngân hàng từ internetbangking xuống lưu định dạng file excel, nhưng các dãy số phát sinh ngăn cách hàng ngàn bằng dấu chấm nên không sum tổng được. Mình muốn nhập dữ liệu này vô phần mềm phải làm thủ công xóa từng dấu chấm mới được. Bạn cá cách nào giúp mình , mình vô cùng cảm ơn
Góp ý cho bạn:
Nội dung của bạn không cùng chủ đề với chủ Topic. Vì vậy, bạn nên mở Topic mới với tiêu đề "Giúp xử lý dữ liệu của File để có thể tính toán được"
Bài đã được tự động gộp:

Em có các bức ảnh (bao gồm tất cả các đuôi có định dạng file ảnh: JPEG, TIFF, GIF và PNG , vv.....) và file excel chứa trong cùng một folder
Em xin được nhờ giúp đỡ vấn đề sau:
Lấy tên file ảnh có chứa trong folder để điền vào cột "Nội dung" trong file excel
Điền theo trình tự chữ cái A, B, C,...., khi điền thì tự động đánh số thứ tự ở cột "Số TT" trong excel.
Khi dữ liệu đã được điền xong thì có thể mở bức ảnh đó bằng cách clik chọn vào ô có chứa nội dung trông cột "Nội dung".
Mong sự giúp đỡ của các thầy (cô), anh (chị).
Em xin cảm ơn!
View attachment 229276
Góp ý cho bạn:
Bạn không nên để tiêu đề nữa chừng như vậy, tiêu đề nên bắt đầu cột A.

A_TD.GIF
 
Lần chỉnh sửa cuối:
Em có các bức ảnh (bao gồm tất cả các đuôi có định dạng file ảnh: JPEG, TIFF, GIF và PNG , vv.....) và file excel chứa trong cùng một folder
Em xin được nhờ giúp đỡ vấn đề sau:
Lấy tên file ảnh có chứa trong folder để điền vào cột "Nội dung" trong file excel
Điền theo trình tự chữ cái A, B, C,...., khi điền thì tự động đánh số thứ tự ở cột "Số TT" trong excel.
Khi dữ liệu đã được điền xong thì có thể mở bức ảnh đó bằng cách clik chọn vào ô có chứa nội dung trông cột "Nội dung".
Mong sự giúp đỡ của các thầy (cô), anh (chị).
Em xin cảm ơn!
View attachment 229276
Dùng thử đoạn code này xem sao?
Mã:
Sub Add_Link()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xPath As String
    Dim I As Integer
    Const fFilter As String = ";.jpg;.gif;.jfif;.png;"
    Range("C5:D" & (Range("D1000").End(xlUp).Row + 1)).Clear
    xPath = ThisWorkbook.Path
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFSO.GetFolder(xPath)
    I = 0
    For Each xFile In xFolder.Files
        If InStrRev(xFile.Name, ".") Then
            If InStr(fFilter, ";" & Right(xFile.Name, Len(xFile.Name) - InStrRev(xFile.Name, ".") + 1) & ";") Then
                I = I + 1
                Cells(I + 4, 3) = I
                ActiveSheet.Hyperlinks.Add Cells(I + 4, 4), xFile.Path, , , Left(xFile.Name, InStrRev(xFile.Name, ".") - 1)
            End If
        End If
    Next
End Sub
 
Em có các bức ảnh (bao gồm tất cả các đuôi có định dạng file ảnh: JPEG, TIFF, GIF và PNG , vv.....) và file excel chứa trong cùng một folder
Em xin được nhờ giúp đỡ vấn đề sau:
Lấy tên file ảnh có chứa trong folder để điền vào cột "Nội dung" trong file excel
Điền theo trình tự chữ cái A, B, C,...., khi điền thì tự động đánh số thứ tự ở cột "Số TT" trong excel.
Khi dữ liệu đã được điền xong thì có thể mở bức ảnh đó bằng cách clik chọn vào ô có chứa nội dung trông cột "Nội dung".
Mong sự giúp đỡ của các thầy (cô), anh (chị).
Em xin cảm ơn!
View attachment 229276
1/ File đính kèm như góp ý bài 4.
2/ Muốn lấy link ở Folder nào thì thay đường dẫn vào C2 rồi nhấn nút.
 

File đính kèm

  • Tao HyperLink .xlsm
    18.7 KB · Đọc: 26
1/ File đính kèm như góp ý bài 4.
2/ Muốn lấy link ở Folder nào thì thay đường dẫn vào C2 rồi nhấn nút.
Cám ơn thầy!
Bài đã được tự động gộp:

Dùng thử đoạn code này xem sao?
Mã:
Sub Add_Link()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xPath As String
    Dim I As Integer
    Const fFilter As String = ";.jpg;.gif;.jfif;.png;"
    Range("C5:D" & (Range("D1000").End(xlUp).Row + 1)).Clear
    xPath = ThisWorkbook.Path
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFSO.GetFolder(xPath)
    I = 0
    For Each xFile In xFolder.Files
        If InStrRev(xFile.Name, ".") Then
            If InStr(fFilter, ";" & Right(xFile.Name, Len(xFile.Name) - InStrRev(xFile.Name, ".") + 1) & ";") Then
                I = I + 1
                Cells(I + 4, 3) = I
                ActiveSheet.Hyperlinks.Add Cells(I + 4, 4), xFile.Path, , , Left(xFile.Name, InStrRev(xFile.Name, ".") - 1)
            End If
        End If
    Next
End Sub
Em cám ơn anh!
 
Dùng thử đoạn code này xem sao?
Mã:
Sub Add_Link()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xPath As String
    Dim I As Integer
    Const fFilter As String = ";.jpg;.gif;.jfif;.png;"
    Range("C5:D" & (Range("D1000").End(xlUp).Row + 1)).Clear
    xPath = ThisWorkbook.Path
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFSO.GetFolder(xPath)
    I = 0
    For Each xFile In xFolder.Files
        If InStrRev(xFile.Name, ".") Then
            If InStr(fFilter, ";" & Right(xFile.Name, Len(xFile.Name) - InStrRev(xFile.Name, ".") + 1) & ";") Then
                I = I + 1
                Cells(I + 4, 3) = I
                ActiveSheet.Hyperlinks.Add Cells(I + 4, 4), xFile.Path, , , Left(xFile.Name, InStrRev(xFile.Name, ".") - 1)
            End If
        End If
    Next
End Sub
Chỗ này:
Mã:
If InStr(fFilter, ";" & Right(xFile.Name, Len(xFile.Name) - InStrRev(xFile.Name, ".") + 1) & ";")
Thay bằng
Mã:
If InStr(fFilter, ";." & xFSO.GetExtensionName(xFile) & ";") Then
Có được không?
 
Dùng thử đoạn code này xem sao?
Mã:
Sub Add_Link()
    Dim xFSO As Object
    Dim xFolder As Object
    Dim xFile As Object
    Dim xPath As String
    Dim I As Integer
    Const fFilter As String = ";.jpg;.gif;.jfif;.png;"
    Range("C5:D" & (Range("D1000").End(xlUp).Row + 1)).Clear
    xPath = ThisWorkbook.Path
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xFolder = xFSO.GetFolder(xPath)
    I = 0
    For Each xFile In xFolder.Files
        If InStrRev(xFile.Name, ".") Then
            If InStr(fFilter, ";" & Right(xFile.Name, Len(xFile.Name) - InStrRev(xFile.Name, ".") + 1) & ";") Then
                I = I + 1
                Cells(I + 4, 3) = I
                ActiveSheet.Hyperlinks.Add Cells(I + 4, 4), xFile.Path, , , Left(xFile.Name, InStrRev(xFile.Name, ".") - 1)
            End If
        End If
    Next
End Sub
Anh ơi, nhờ anh giúp em thêm chút, anh giúp em để có thể khi chọn ô nội dung bức ảnh đó sẽ dẫn đến vị trí bức ảnh đó mà không cần mở luôn file ảnh đó ra.
Em cảm ơn anh!
1111.png
 
Chỗ này:
Mã:
If InStr(fFilter, ";" & Right(xFile.Name, Len(xFile.Name) - InStrRev(xFile.Name, ".") + 1) & ";")
Thay bằng
Mã:
If InStr(fFilter, ";." & xFSO.GetExtensionName(xFile) & ";") Then
Có được không?
Đã lâu rồi không thấy anh Tuấn (@ndu96081631 ) trở lại.
Anh ơi, nhờ anh giúp em thêm chút, anh giúp em để có thể khi chọn ô nội dung bức ảnh đó sẽ dẫn đến vị trí bức ảnh đó mà không cần mở luôn file ảnh đó ra.
Em cảm ơn anh!
View attachment 229333
Nếu mở đến thư mục đó thì được còn mở và chọn luôn file thì hơi quá sức của tôi.
 
Đã lâu rồi không thấy anh Tuấn (@ndu96081631 ) trở lại.

Nếu mở đến thư mục đó thì được còn mở và chọn luôn file thì hơi quá sức của tôi.
Ý em là chọn đến file ảnh có nội dung thư mục đó (như hình em đăng bài #10) mà không cần mở trực tiếp file ảnh có nội dung đó ra.
Cám ơn anh!
 
Thì chính là vậy đó mà (gợi ý ở bài 12)
Em có copy code vào thấy báo lỗi.
Em xin diễn đạt lái ý em cần giúp đỡ:
Em muốn khi chạy code sẽ lấy được tên file để điền vào nội dung trong cột"Nội dung" của excel
Khi chọn ô trong cột "Nội dung" đó sẽ chọn được file ảnh, ở trên thầy đã giúp em mở luôn file ảnh đó ra.
Cảm ơn thầy!
 
Em có copy code vào thấy báo lỗi.
Em xin diễn đạt lái ý em cần giúp đỡ:
Em muốn khi chạy code sẽ lấy được tên file để điền vào nội dung trong cột"Nội dung" của excel
Khi chọn ô trong cột "Nội dung" đó sẽ chọn được file ảnh, ở trên thầy đã giúp em mở luôn file ảnh đó ra.
Cảm ơn thầy!
Làm cho bạn luôn đây
1> Code trong module:
Mã:
Sub GetImages()
  Dim oFile As Object
  Dim sPath As String, sExt As String
  Dim idx As Long
  Const IMG_FILTER As String = "/JPG/GIF/JFIF/PNG/"
  'On Error Resume Next
  Range("C5:D1000").Clear
  idx = 4
  sPath = ThisWorkbook.Path
  With CreateObject("Scripting.FileSystemObject")
    For Each oFile In .GetFolder(sPath).Files
      sExt = .GetExtensionName(oFile)
      If InStr(1, IMG_FILTER, "/" & sExt & "/", vbTextCompare) Then
        idx = idx + 1
        Cells(idx, 3) = idx - 4
        Cells(idx, 4) = Left(oFile.Name, Len(oFile.Name) - Len(sExt) - 1)
        Cells(idx, 4).ID = oFile
      End If
    Next
  End With
End Sub
2> Code trong sự kiện SectionChange
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  'On Error Resume Next
  If Not Intersect(Range("D5:D1000"), Target) Is Nothing Then
    If Target.Count = 1 Then
      If FSO.FileExists(Target.ID) Then Shell "Explorer.exe /Select, " & """" & Target.ID & """", 1
    End If
  End If
End Sub
 

File đính kèm

  • Quanlyanh.xls
    77 KB · Đọc: 19
Làm cho bạn luôn đây
1> Code trong module:
Mã:
Sub GetImages()
  Dim oFile As Object
  Dim sPath As String, sExt As String
  Dim idx As Long
  Const IMG_FILTER As String = "/JPG/GIF/JFIF/PNG/"
  'On Error Resume Next
  Range("C5:D1000").Clear
  idx = 4
  sPath = ThisWorkbook.Path
  With CreateObject("Scripting.FileSystemObject")
    For Each oFile In .GetFolder(sPath).Files
      sExt = .GetExtensionName(oFile)
      If InStr(1, IMG_FILTER, "/" & sExt & "/", vbTextCompare) Then
        idx = idx + 1
        Cells(idx, 3) = idx - 4
        Cells(idx, 4) = Left(oFile.Name, Len(oFile.Name) - Len(sExt) - 1)
        Cells(idx, 4).ID = oFile
      End If
    Next
  End With
End Sub
2> Code trong sự kiện SectionChange
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  'On Error Resume Next
  If Not Intersect(Range("D5:D1000"), Target) Is Nothing Then
    If Target.Count = 1 Then
      If FSO.FileExists(Target.ID) Then Shell "Explorer.exe /Select, " & """" & Target.ID & """", 1
    End If
  End If
End Sub
Em cám ơn thầy!
Em chạy code thầy giúp thì đã lấy được tên nội dung file ảnh, nhưng làm thế nào có thể chọn nội dung đó trong excel để chọn được file ảnh tương ứng với nội dung đó ạ! (clik vào ô chứa nội dung trong excel sẽ chọn được file ảnh có nội dung tương ứng)
 
Em cám ơn thầy!
Em chạy code thầy giúp thì đã lấy được tên nội dung file ảnh, nhưng làm thế nào có thể chọn nội dung đó trong excel để chọn được file ảnh tương ứng với nội dung đó ạ! (clik vào ô chứa nội dung trong excel sẽ chọn được file ảnh có nội dung tương ứng)
Sao bạn không click thử?
Yêu cầu là file Excel và các file ảnh phải nằm cùng thư mục
 
Làm cho bạn luôn đây
1> Code trong module:
Mã:
Sub GetImages()
  Dim oFile As Object
  Dim sPath As String, sExt As String
  Dim idx As Long
  Const IMG_FILTER As String = "/JPG/GIF/JFIF/PNG/"
  'On Error Resume Next
  Range("C5:D1000").Clear
  idx = 4
  sPath = ThisWorkbook.Path
  With CreateObject("Scripting.FileSystemObject")
    For Each oFile In .GetFolder(sPath).Files
      sExt = .GetExtensionName(oFile)
      If InStr(1, IMG_FILTER, "/" & sExt & "/", vbTextCompare) Then
        idx = idx + 1
        Cells(idx, 3) = idx - 4
        Cells(idx, 4) = Left(oFile.Name, Len(oFile.Name) - Len(sExt) - 1)
        Cells(idx, 4).ID = oFile
      End If
    Next
  End With
End Sub
2> Code trong sự kiện SectionChange
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  'On Error Resume Next
  If Not Intersect(Range("D5:D1000"), Target) Is Nothing Then
    If Target.Count = 1 Then
      If FSO.FileExists(Target.ID) Then Shell "Explorer.exe /Select, " & """" & Target.ID & """", 1
    End If
  End If
End Sub
Thật tuyệt vời quá anh ơi, cảm ơn anh nhiều. Nhưng tìm được tên có cách nào ảnh đó hiện lên luôn không anh nhỉ? Ý em là hiện cả ảnh lên được không ạ.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom