Công thức load hình userform bị lỗi do folder

Liên hệ QC

son0611excel

Thành viên mới
Tham gia
3/1/20
Bài viết
42
Được thích
5
Giới tính
Nam
Nghề nghiệp
Kỹ Thuật
Em chào anh chị ạ, em có 1 file excel quản lý kho sài VBA, trong đó có 1 công thức load hình khi ta nhấp vào dòng trong listbox userform là nó hiện lên hình ảnh ở image, trước do folder lưu file này không có tên tiếng nhật, nên em sài vẫn bình thường, từ lúc đổi tên tất cả các folder trên server có thêm tiếng nhật vào thì nó load hình bị lỗi. Anh chị có cách nào để nó có thể đọc được đường dẫn có tên tiếng nhật không ạ. Em cảm ơn nhiều!

Code load hình của em ạ, folder hình nằm chung với file excel ạ:

Private Sub ListBox6_Click()
Dim path As String, shortName As String
With Me
If .ListBox6.ListIndex >= 0 Then
.TextBox2 = .ListBox6.List(.ListBox6.ListIndex, 0)
.TextBox3 = .ListBox6.List(.ListBox6.ListIndex, 1)
.TextBox4 = .ListBox6.List(.ListBox6.ListIndex, 2)
.TextBox5 = .ListBox6.List(.ListBox6.ListIndex, 3)
.TextBox6 = .ListBox6.List(.ListBox6.ListIndex, 4)
.TextBox7 = .ListBox6.List(.ListBox6.ListIndex, 5)
path = ThisWorkbook.path & "\Pictures\"
shortName = GetShortPathName(path & .ListBox6.List(.ListBox6.ListIndex, 1) & ".jpg", path & "nopicture.jpg")
.Image2.Picture = LoadPicture(shortName)
End If
End With
End Sub

Private Sub ListBox7_Click()
Dim path As String, shortName As String
With Me
If .ListBox7.ListIndex >= 0 Then
.TextBox3 = .ListBox6.List(.ListBox7.ListIndex, 1)
path = ThisWorkbook.path & "\Pictures\"
shortName = GetShortPathName(path & .ListBox7.List(.ListBox7.ListIndex, 1) & ".jpg", path & "nopicture.jpg")
.Image2.Picture = LoadPicture(shortName)
End If
End With
End Sub
 

File đính kèm

  • 1.JPG
    1.JPG
    94.7 KB · Đọc: 16
  • 3.JPG
    3.JPG
    91.2 KB · Đọc: 16
shortName = GetShortPathName(path & .ListBox6.List(.ListBox6.ListIndex, 1) & ".jpg", path & "nopicture.jpg")
Thử sửa cái này thành:
Mã:
shortName = path & .ListBox6.List(.ListBox6.ListIndex, 1) & ".jpg"
Trường hợp kiểm tra ảnh đó có tồn tại không thì phải thêm vài bước nữa. Liên quan đến server thì có khi còn phải ping cái server có hoạt động không nữa, nếu không hoạt động nó xoay xoay hơi lâu :D
 
Upvote 0
Thử sửa cái này thành:
Mã:
shortName = path & .ListBox6.List(.ListBox6.ListIndex, 1) & ".jpg"
Trường hợp kiểm tra ảnh đó có tồn tại không thì phải thêm vài bước nữa. Liên quan đến server thì có khi còn phải ping cái server có hoạt động không nữa, nếu không hoạt động nó xoay xoay hơi lâu :D
Dạ không được anh ơi, cái code này là bấm vào dòng tên nào thì nó hiện file hình có tên đó lên, còn nó chưa có hình thì sẽ load file hình có tên là nopicture
 
Upvote 0
Dạ không được anh ơi
Không được là không hiện lên hình (nếu hình tồn tại) hay là vẫn hiện?
còn nó chưa có hình thì sẽ load file hình có tên là nopicture
Chưa có hình tức phải dùng code xét hình đó tồn tại trong folder kia không thì tôi mới nói:
Trường hợp kiểm tra ảnh đó có tồn tại không thì phải thêm vài bước nữa
Vài bước nữa là dùng FileSystemObject kiểm tra file tồn tại hay không
Sau khi xét nó không tồn tại thì shortname = ...\...\nopictrue.jpg
Không có file thì đoán mò vậy thôi
 
Upvote 0
Em copy ra desktop thì nó sài bt, còn trên server thì lúc chưa đổi tên tiếng nhật thì vẫn sài bình thường luôn ạ, sau khi đổi tên có tiếng nhật thì nó bị lỗi như đầu bài e có hình ạ!

Em có đính kèm file nén excel và forder hình ạ!
Không được là không hiện lên hình (nếu hình tồn tại) hay là vẫn hiện?

Chưa có hình tức phải dùng code xét hình đó tồn tại trong folder kia không thì tôi mới nói:

Vài bước nữa là dùng FileSystemObject kiểm tra file tồn tại hay không
Sau khi xét nó không tồn tại thì shortname = ...\...\nopictrue.jpg
Không có file thì đoán mò vậy thôi
Bài đã được tự động gộp:


Bài đã được tự động gộp:

a tạo 1 folder để chung với file excel như em rồi cho 1 tấm hình vào đó đổi tên rồi seach tên in hoa xem thử ạ!

1666758030084.png
 

File đính kèm

  • 4.JPG
    4.JPG
    122 KB · Đọc: 11
  • 3.JPG
    3.JPG
    105.2 KB · Đọc: 11
  • 1.JPG
    1.JPG
    104.5 KB · Đọc: 11
  • 1666758013161.png
    1666758013161.png
    5.2 KB · Đọc: 7
  • LITS TIÊU HAO FY2022.xlsm
    2.4 MB · Đọc: 6
Upvote 0
Em copy ra desktop thì nó sài bt, còn trên server thì lúc chưa đổi tên tiếng nhật thì vẫn sài bình thường luôn ạ, sau khi đổi tên có tiếng nhật thì nó bị lỗi như đầu bài e có hình ạ!

Em có đính kèm file nén excel và forder hình ạ!

Bài đã được tự động gộp:


Bài đã được tự động gộp:

a tạo 1 folder để chung với file excel như em rồi cho 1 tấm hình vào đó đổi tên rồi seach tên in hoa xem thử ạ!

View attachment 282528
Bạn nên đính kèm file nén, trong đó có folder pictures với một vài tấm ảnh (có cả folder tiếng Nhật như bạn nói) thì tiện hơn
Mở file bạn lên listbox không có dữ liệu gì cả. Code thì một rừng sao xem nổi
 
Upvote 0
Bạn nên đính kèm file nén, trong đó có folder pictures với một vài tấm ảnh (có cả folder tiếng Nhật như bạn nói) thì tiện hơn
Mở file bạn lên listbox không có dữ liệu gì cả. Code thì một rừng sao xem nổi
Em gửi mọi người xem thử ạ!
 

File đính kèm

  • New folder.zip
    2.6 MB · Đọc: 10
Upvote 0
Giải pháp
Em chào anh chị ạ, em có 1 file excel quản lý kho sài VBA, trong đó có 1 công thức load hình khi ta nhấp vào dòng trong listbox userform là nó hiện lên hình ảnh ở image, trước do folder lưu file này không có tên tiếng nhật, nên em sài vẫn bình thường, từ lúc đổi tên tất cả các folder trên server có thêm tiếng nhật vào thì nó load hình bị lỗi. Anh chị có cách nào để nó có thể đọc được đường dẫn có tên tiếng nhật không ạ. Em cảm ơn nhiều!

Code load hình của em ạ, folder hình nằm chung với file excel ạ:

Private Sub ListBox6_Click()
Dim path As String, shortName As String
With Me
If .ListBox6.ListIndex >= 0 Then
.TextBox2 = .ListBox6.List(.ListBox6.ListIndex, 0)
.TextBox3 = .ListBox6.List(.ListBox6.ListIndex, 1)
.TextBox4 = .ListBox6.List(.ListBox6.ListIndex, 2)
.TextBox5 = .ListBox6.List(.ListBox6.ListIndex, 3)
.TextBox6 = .ListBox6.List(.ListBox6.ListIndex, 4)
.TextBox7 = .ListBox6.List(.ListBox6.ListIndex, 5)
path = ThisWorkbook.path & "\Pictures\"
shortName = GetShortPathName(path & .ListBox6.List(.ListBox6.ListIndex, 1) & ".jpg", path & "nopicture.jpg")
.Image2.Picture = LoadPicture(shortName)
End If
End With
End Sub

Private Sub ListBox7_Click()
Dim path As String, shortName As String
With Me
If .ListBox7.ListIndex >= 0 Then
.TextBox3 = .ListBox6.List(.ListBox7.ListIndex, 1)
path = ThisWorkbook.path & "\Pictures\"
shortName = GetShortPathName(path & .ListBox7.List(.ListBox7.ListIndex, 1) & ".jpg", path & "nopicture.jpg")
.Image2.Picture = LoadPicture(shortName)
End If
End With
End Sub
path = ThisWorkbook.path & "\Pictures\"
shortName = GetShortPathName(path & .ListBox6.List(.ListBox6.ListIndex, 1) & ".jpg", path & "nopicture.jpg") có thể path=?????\abc\.... gì đó rồi chứ trong vba dễ lỗi font lắm!
 
Upvote 0
Mở file lên thì không có dữ liệu gì trong listbox để test thử. Kiếm chỗ nào ghi dữ liệu vào listbox thì không thấy. Nói chung là listbox trống trơn
Listbox anh search mới thấy được, a mở chữ in hoa lên rồi nhập chữ A là nó ra ạ!
Bài đã được tự động gộp:

Mở file lên thì không có dữ liệu gì trong listbox để test thử. Kiếm chỗ nào ghi dữ liệu vào listbox thì không thấy. Nói chung là listbox trống trơn
1666844283331.png
 
Upvote 0
Listbox anh search mới thấy được, a mở chữ in hoa lên rồi nhập chữ A là nó ra ạ!
Bạn nói đổi tên folder sang tiếng Nhật là của folder chứa file đó? hay của folder Pictures?
Mình thử đổi tên folder chứa file như bạn nói thì không có lỗi
1666846454513.png
 
Upvote 0
Em chào anh chị ạ, em có 1 file excel quản lý kho sài VBA, trong đó có 1 công thức load hình khi ta nhấp vào dòng trong listbox userform là nó hiện lên hình ảnh ở image, trước do folder lưu file này không có tên tiếng nhật, nên em sài vẫn bình thường, từ lúc đổi tên tất cả các folder trên server có thêm tiếng nhật vào thì nó load hình bị lỗi. Anh chị có cách nào để nó có thể đọc được đường dẫn có tên tiếng nhật không ạ. Em cảm ơn nhiều!

Code load hình của em ạ, folder hình nằm chung với file excel ạ:

Private Sub ListBox6_Click()
Dim path As String, shortName As String
With Me
If .ListBox6.ListIndex >= 0 Then
.TextBox2 = .ListBox6.List(.ListBox6.ListIndex, 0)
.TextBox3 = .ListBox6.List(.ListBox6.ListIndex, 1)
.TextBox4 = .ListBox6.List(.ListBox6.ListIndex, 2)
.TextBox5 = .ListBox6.List(.ListBox6.ListIndex, 3)
.TextBox6 = .ListBox6.List(.ListBox6.ListIndex, 4)
.TextBox7 = .ListBox6.List(.ListBox6.ListIndex, 5)
path = ThisWorkbook.path & "\Pictures\"
shortName = GetShortPathName(path & .ListBox6.List(.ListBox6.ListIndex, 1) & ".jpg", path & "nopicture.jpg")
.Image2.Picture = LoadPicture(shortName)
End If
End With
End Sub

Private Sub ListBox7_Click()
Dim path As String, shortName As String
With Me
If .ListBox7.ListIndex >= 0 Then
.TextBox3 = .ListBox6.List(.ListBox7.ListIndex, 1)
path = ThisWorkbook.path & "\Pictures\"
shortName = GetShortPathName(path & .ListBox7.List(.ListBox7.ListIndex, 1) & ".jpg", path & "nopicture.jpg")
.Image2.Picture = LoadPicture(shortName)
End If
End With
End Sub
Đã sử dụng VBA thì tốt nhất là sử dụng tiếng Anh cho thuận tiện.
Tội gì phải đổi tên folder cho khổ thân chứ!
 
Upvote 0
Web KT
Back
Top Bottom