Kiểm tra cell có tồn tại

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

ankata

Thành viên mới
Tham gia
2/1/08
Bài viết
1
Được thích
0
Hi all,

Trong excel mình có thể map địa chỉ của 1 cell với tên khác (VD: A1 -> PON.1). Khi mình lấy giá trị của cell đó, thì có thể dùng Cells("PON.1").

Nếu trong trường hợp PON.1 không tồn tại thì mình làm sao check được. Bạn nào có biết hàm nào kiểm tra sự tồn tại của cell khi dùng điạ chỉ map không?

Cảm ơn.
 
Map nghĩa là cái gì nhỉ? Tôi đoán là bạn đang đặt name cho cell A1 là PON.1 có đúng ko nhỉ?
Nếu đúng thì thì sẽ có 2 cách kiểm tra sự tồn tại cũa nó:
Cách 1: Bằng tay.. bạn bấm F5, sẽ thấy 1 danh sách, xem thử trong đó có tên PON.1 ko?
Cách 2: dùng VBA với code sau:​
PHP:
Sub KT()
  Dim TEN As Name
  Dim TTen As String
  TTen = Application.InputBox(prompt:="Go ten can tim vao", Type:=2)
  For Each TEN In ActiveWorkbook.Names
    If TEN.Name = TTen Then
       MsgBox "*" & TTen & "* dang ton tai": Exit Sub
    End If
  Next
       MsgBox "Chang co ong *" & TTen & "* nao ca"
End Sub
ANH TUẤN
 
Lần chỉnh sửa cuối:
Upvote 0
Qua bài này tôi phát hiện code trên chỉ tìm dc name toàn cục
Có cách nào cho nó phát hiện dc name cục bộ ko nhỉ?
ANH TUẤN
 
Upvote 0
Ah... tôi làm dc rồi...
1> Đầu tiên dùng vòng lập quét qua các sheet đễ tìm Name cục bộ...
2> Nếu ko tìm dc thì lại dùng vòng lập tìm name toàn cục trong Workbook
Code chạy ko có vấn đề, tuy nhiên tôi vẫn cãm giác cách viết có vẽ.. thế nào ấy... Nhờ các cao thủ xem lại và rút gọn dùm.. nhân tiện xem luôn cách khai báo biến đã ổn chưa?
PHP:
Sub KT()
  Dim TEN As Name
  Dim TTen As String, ShN As String
  Dim Shs As Integer
  TTen = Application.InputBox(prompt:="Go ten can tim vao", Type:=2)
  Shs = Worksheets.Count
  For i = 1 To Shs
     Sheets(i).Select
     For Each TEN In Sheets(i).Names
        ShN = Sheets(i).Name
        If UCase(TEN.Name) = UCase(ShN & "!" & TTen) Then
           Range(TEN).Select
           MsgBox "*" & TTen & "* dang ton tai - Name CUC BO": Exit Sub
        End If
     Next
   Next i
   For Each TEN In ActiveWorkbook.Names
        If UCase(TEN.Name) = UCase(TTen) Then
           Range(TEN).Select
           MsgBox "*" & TTen & "* dang ton tai - Name TOAN CUC": Exit Sub
        End If
   Next
           MsgBox "Chang co ong *" & TTen & "* nao ca"
End Sub
Mến
ANH TUẤN
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom