Tìm một sheet bất kỳ trong môt workbook ntn????

Liên hệ QC

hien_thu

Thành viên mới
Tham gia
9/1/07
Bài viết
2
Được thích
0
Mình có một workbook chứa rất nhiều sheet. Mình muốn tìm một sheet bất kỳ thì phải làm ntn?? Giống như dùng lệnh find trên một workbook ấy, nhưng cái mình cần tìm là tên sheet chứ không phải là một giá trị trong sheet. Mong các cao thủ ra tay giúp đỡ. Chân thành cảm ơn.
 
Có lẽ hien thu muốn hỏi làm thế nào để tìm được tên sheet như chức năng của Find : Nhập tên sheet, tim kiếm, nếu thấy thì hiện sheet, nếu không thì báo không có. ?!
 
Upvote 0
Bạn thử dùng con macro này xem sao:

Mã:
Sub Tim_Sheet()
  Dim i As Integer
  Sosheet = ActiveWorkbook.Sheets.Count
  
  TenSheet = LCase(Application.InputBox("Ban go ten cua Sheet:", "GPE"))
  
  For i = 1 To Sosheet
    If InStr(1, TenSheet, LCase(Sheets(i).Name), vbTextCompare) <> 0 Then
      Sheets(i).Select
      Exit For
    End If
  Next
   
End Sub
 
Upvote 0
Tim sheet trong workbook

Chao hien_thu,

Mot cach nua la dung macro de tao 1 hop chua dung ten cac sheet trong workbook do roi dung chuot click vao ten sheet minh muon tim.

Minh co dinh kem cai file de ban de tham khao.

Xin loi minh khong biet lam cach nao de bo dau tieng Viet trong forum.

Phong
 

File đính kèm

Upvote 0
Bạn tham khảo đoạn code này:

Mã:
Sub Tim_Sheet()
Dim IsFound As Boolean
Dim i As Integer, Sosheet As Long
Dim TenSheet As String

  Sosheet = ActiveWorkbook.Sheets.Count
  
  TenSheet = LCase(Application.InputBox("Ban go ten cua Sheet:", "GPE"))
  
  If TenSheet = "false" Then Exit Sub 'Neu nguoi dung nhan Cancel thi khong tim
  
  If TenSheet = "" Then 'Truong hop nguoi dung khong vao gia tri
    MsgBox "Ban hay dua ten sheet de tim.", vbExclamation, "Thieu du lieu tim"
    Exit Sub
  End If
  
IsFound = False
  For i = 1 To Sosheet
    If InStr(1, LCase(Sheets(i).Name), TenSheet) > 0 Then
        IsFound = True
      Sheets(i).Select
      If MsgBox("Da tim duoc sheet chua ten """ & TenSheet & """ . Ban co muon tim tiep khong?", vbYesNo + vbQuestion, "Tim sheet") = vbNo Then
        Exit For
      End If
    End If
  Next
   
'Neu khong tim duoc
If Not IsFound Then MsgBox "Khong tim thay sheet co ten """ & TenSheet & """.", vbExclamation, "Khong tim thay ten sheet"

End Sub
 
Upvote 0
Mình đã sửa lại cái của Tuân cho hoàn chỉnh hơn:--=0

Mã:
Sub Tim_Sheet()
  Dim Tieude As String
  Dim Timduoc As Boolean
  Dim i As Integer, Sosheet As Long
  Dim TenSheet As String

  Tieude = "www.giaiphapexcel.com"
  Sosheet = ActiveWorkbook.Sheets.Count

Timtiep:
  TenSheet = LCase(Application.InputBox("Ban go ten cua Sheet:", Tieude))

  If TenSheet = "false" Then Exit Sub 'Neu nguoi dung nhan Cancel thi khong tim

    If TenSheet = "" Then 'Truong hop nguoi dung khong vao gia tri
      MsgBox "Ban hay dua ten sheet de tim.", vbExclamation, Tieude
      GoTo Timtiep
  End If

  Timduoc = False
  For i = 1 To Sosheet
    If InStr(1, LCase(Sheets(i).Name), TenSheet) > 0 Then
      Timduoc = True
      Sheets(i).Select
      If MsgBox("Da tim duoc sheet co ten """ & TenSheet & """. Ban co muon tim tiep khong?", _
      vbYesNo + vbQuestion, Tieude) = vbYes Then GoTo Timtiep
  
        Exit For
    End If
  Next

'Neu khong tim duoc
If Not Timduoc Then MsgBox "Khong tim thay sheet co ten """ & TenSheet & _
""".", vbExclamation, Tieude

End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
hien_thu đã viết:
Mình có một workbook chứa rất nhiều sheet. Mình muốn tìm một sheet bất kỳ thì phải làm ntn?? Giống như dùng lệnh find trên một workbook ấy, nhưng cái mình cần tìm là tên sheet chứ không phải là một giá trị trong sheet. Mong các cao thủ ra tay giúp đỡ. Chân thành cảm ơn.
Tôi chưa rõ câu hỏi của bạn, không biết cách của tôi có trùng với ý của bạn không? cách dơn giản của tôi là:
Bạn mở workbook và di chuyển trỏ về vị trí 4 mũi tên di chuyển sheet, nhấn chuột phải rồi kích chọn trang mình cần xem.
Chúc thành công!
 
Upvote 0
Với bacute: Đó là cách nhanh nhất trong trường hợp cụ thể là TÌM SHEET... tuy nhiên, mấy code của cao thủ ở trên cũng ko hẳn là vô nghĩa... Nó thường dc lồng vào trong 1 code khác với mục đích xác định sự tồn tại của 1 sheet... (và làm chuyện gì khác nữa thì tôi chưa biết)
ANH TUẤN
 
Upvote 0
Bạn tham khảo ở đây, xem thử đúng í chưa!!

http://webketoan.vn/forum/showthread.php?t=13374
:=\+ --=-- --=0
 
Upvote 0
Web KT

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

Back
Top Bottom