Cắt chuỗi lấy đường dẫn (1 người xem)

  • Thread starter Thread starter thanhdqr
  • Ngày gửi Ngày gửi
Liên hệ QC

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

thanhdqr

Thành viên mới
Tham gia
24/11/09
Bài viết
11
Được thích
0
C:\Documents\Data\Sheet\07140\B2.doc

Mình có dữ liệu như trên muốn cắt chuỗi để lấy tên file là B2.doc và đường dẫn đến file là: C:\Documents\Data\Sheet\07140\
Nhờ các anh chị trợ giúp.
Chân thành cám ơn.
 
c:\documents\data\sheet\07140\b2.doc

mình có dữ liệu như trên muốn cắt chuỗi để lấy tên file là b2.doc và đường dẫn đến file là: C:\documents\data\sheet\07140\
nhờ các anh chị trợ giúp.
Chân thành cám ơn.
giả sử dữ liệu nằm trong A1
B1=trim(right(substitute(a1,"\",rept(" ",255)),255))
C1=left(a1,len(a1)-len(b1)-1)
 
C:\Documents\Data\Sheet\07140\B2.doc

Mình có dữ liệu như trên muốn cắt chuỗi để lấy tên file là B2.doc và đường dẫn đến file là: C:\Documents\Data\Sheet\07140\
Nhờ các anh chị trợ giúp.
Chân thành cám ơn.
anh Phi làm chuẩn rồi, nhưng bạn nên đừa file đính kèm lên nhé.
 
Cám ơn bác, mình cũng tìm ra một cách nhưng ko dùng cách loại tên file của bác.
giả sử đường dẫn cần cắt ở D2 thì:
Tên file sẽ là: =RIGHT(D2,LEN(D2)-FIND("|",SUBSTITUTE(D2,"\","|",LEN(D2)-LEN(SUBSTITUTE(D2,"\","")))))
và đường dẫn mình sẽ viết 1 hàm nhỏ như sau:
Function FINDR(text As String) As Integer
Dim str_1 As String, I As Integer
str_1 = Trim(text)
I = 0
Do
I = I + InStr(str_1, "\")
str_1 = Mid(str_1, InStr(str_1, "\") + 1)
Loop Until InStr(str_1, "\") = 0
FINDR = I
End Function
khi gọi hàm sẽ dùng: =LEFT(D2,FINDR(D2))
 

File đính kèm

Cám ơn bác, mình cũng tìm ra một cách nhưng ko dùng cách loại tên file của bác.
giả sử đường dẫn cần cắt ở D2 thì:
Tên file sẽ là: =RIGHT(D2,LEN(D2)-FIND("|",SUBSTITUTE(D2,"\","|",LEN(D2)-LEN(SUBSTITUTE(D2,"\","")))))
và đường dẫn mình sẽ viết 1 hàm nhỏ như sau:
Function FINDR(text As String) As Integer
Dim str_1 As String, I As Integer
str_1 = Trim(text)
I = 0
Do
I = I + InStr(str_1, "\")
str_1 = Mid(str_1, InStr(str_1, "\") + 1)
Loop Until InStr(str_1, "\") = 0
FINDR = I
End Function
khi gọi hàm sẽ dùng: =LEFT(D2,FINDR(D2))
Liệu có nên xét trường hợp ĐƯỜNG DẪN ẤY CÓ TỒN TẠI hay không ta?
Ví tôi nghĩ, nếu một đường dẫn link đến file hoặc folder mà không tồn tại thì chẳng để làm gì cả
Liên quan đến việc xử lý file, folder, bạn nên dùng Scripting.FileSystemObject sẽ chuẩn hơn
--------------------
Còn nếu chỉ muốn cắt lấy chuỗi trước ký tự "\" cuối cùng thì làm vầy cho khỏe:
Mã:
Function ParentFolder(ByVal sPath As String) As String
  If InStr(1, sPath, "\") Then
    ParentFolder = Mid(sPath, 1, InStrRev(sPath, "\"))
  End If
End Function
Áp dụng trên bảng tính:
Mã:
=ParentFolder(D2)
Khỏi LEFT, RIGHT và FINDR gì ráo
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom