Hỏi về nhập tên file vào InputBox hoặc TextBox

Liên hệ QC

diemvuongvathuongde

Thành viên chính thức
Tham gia
5/11/07
Bài viết
75
Được thích
2
Chào các bác. Cho em hỏi một việc: Em muốn Save một file (nhưng không muốn thực hiện qua hộp thoại Save của Excel) nên em nhập tên file thông qua InputBox (Hoặc TextBox trong Form). Làm thế nào để chỉ được phép nhập các kí tự phù hợp với quy định về file name của Windows? Cảm ơn các bác trước.
 
Chào các bác. Cho em hỏi một việc: Em muốn Save một file (nhưng không muốn thực hiện qua hộp thoại Save của Excel) nên em nhập tên file thông qua InputBox (Hoặc TextBox trong Form). Làm thế nào để chỉ được phép nhập các kí tự phù hợp với quy định về file name của Windows? Cảm ơn các bác trước.

Bạn xem qua quy định đặt tên này nhé.
Còn muốn xem có ký tự đó không thì nên dùng hàm instr

Thân!
 

File đính kèm

  • Quy dinh dat ten.JPG
    Quy dinh dat ten.JPG
    5.5 KB · Đọc: 33
Upvote 0
Khi nhập ký tự gì đó ko hợp lệ thì ăn chắc là sẽ có thông báo lổi xuất hiện, vậy bạn thêm 1 đoạn code này vào:
PHP:
Sub Macro1()
..........................
    On Error GoTo Thongbao
..........................
Code của bạn tại đây
..........................
Thongbao:     MsgBox ("Ten file khong hop le"): Exit Sub
End Sub
 
Upvote 0
Theo gợi ý của các bác, em làm đoạn code để kiểm tra tên file như sau
Mã:
Sub InputFileName()
    Dim abc
    abc = InputBox("Nhap ten file")
    If Len(abc) = 0 Then Exit Sub
    If InStr(abc, "\") > 0 Or _
       InStr(abc, "/") > 0 Or _
       InStr(abc, ":") > 0 Or _
       InStr(abc, "*") > 0 Or _
       InStr(abc, "?") > 0 Or _
      [COLOR=red] InStr(abc, """) > 0 Or _[/COLOR]
       InStr(abc, "<") > 0 Or _
       InStr(abc, ">") > 0 Or _
       InStr(abc, "|") > 0 Then
        MsgBox ("Sai roi")
    Else
        MsgBox ("Dung roi")
    End If
End Sub
Nhưng nó báo lỗi ở dòng màu đỏ. Xin hỏi các bác cách khắc phục
 
Upvote 0
Theo gợi ý của các bác, em làm đoạn code để kiểm tra tên file như sau
Mã:
Sub InputFileName()
    Dim abc
    abc = InputBox("Nhap ten file")
    If Len(abc) = 0 Then Exit Sub
    If InStr(abc, "\") > 0 Or _
       InStr(abc, "/") > 0 Or _
       InStr(abc, ":") > 0 Or _
       InStr(abc, "*") > 0 Or _
       InStr(abc, "?") > 0 Or _
      [COLOR=red] InStr(abc, """) > 0 Or _[/COLOR]
       InStr(abc, "<") > 0 Or _
       InStr(abc, ">") > 0 Or _
       InStr(abc, "|") > 0 Then
        MsgBox ("Sai roi")
    Else
        MsgBox ("Dung roi")
    End If
End Sub
Nhưng nó báo lỗi ở dòng màu đỏ. Xin hỏi các bác cách khắc phục


Sửa thành :
PHP:
 InStr(abc, """") > 0 Or _
Đây là UDF để biết rằng tên đó có đúng quy chuẩn không :
PHP:
Function DatTen(Ten As String) As Boolean
    Application.Volatile (False)
    If InStr(1, Ten, "\") > 0 Then Exit Function
    If InStr(1, Ten, "/") > 0 Then Exit Function
    If InStr(1, Ten, ":") > 0 Then Exit Function
    If InStr(1, Ten, "*") > 0 Then Exit Function
    If InStr(1, Ten, "?") > 0 Then Exit Function
    If InStr(1, Ten, """") > 0 Then Exit Function
    If InStr(1, Ten, "<") > 0 Then Exit Function
    If InStr(1, Ten, ">") > 0 Then Exit Function
    If InStr(1, Ten, "|") > 0 Then Exit Function
    DatTen = True
End Function
Hàm sẽ trả về giá trị TRUE nếu hợp chuẩn.

Thân!
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom