Tìm một chuỗi trong 1 công thức của Excel bằng VBA?

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

dvu58

Thành viên thường trực
Tham gia
29/4/07
Bài viết
298
Được thích
378
Các bạn cho mình hỏi: Cách tìm một chuỗi trong một công thức trong 1 bảng tính Excel?

Ví dụ: Trong các cells của một bảng tính (VD Sheet1) có công thức - VD: Tại D7 =IF(C7=" ", " ", VLOOKUP(C7,'C:\DATA\[DIEM.xls]Sheet1'!$B$27:$C$5450, 2, 0))

Giả sử, mình muốn dùng VBA để tìm chuỗi "C:\DATA\[DIEM.xls]Sheet1" trong công thức ấy thì mình phải dùng hàm nào hoặc thực hiện ra sao?

Mong các bạn hướng dẫn giúp.
Cảm ơn các bạn nhiều.
 
Mình nghĩ bạn dựa vào vị trí đường dẫn để dễ tìm hơn. Bạn có thể up file ví dụ lên để mọi người tiện giúp hơn.
 
Upvote 0
Bạn dvu58 xem file đính kèm thử nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Các bạn cho mình hỏi: Cách tìm một chuỗi trong một công thức trong 1 bảng tính Excel?

Ví dụ: Trong các cells của một bảng tính (VD Sheet1) có công thức - VD: Tại D7 =IF(C7=" ", " ", VLOOKUP(C7,'C:\DATA\[DIEM.xls]Sheet1'!$B$27:$C$5450, 2, 0))

Giả sử, mình muốn dùng VBA để tìm chuỗi "C:\DATA\[DIEM.xls]Sheet1" trong công thức ấy thì mình phải dùng hàm nào hoặc thực hiện ra sao?

Mong các bạn hướng dẫn giúp.
Cảm ơn các bạn nhiều.
Sao anh không bấm Ctrl + F mà thử ---> Công cụ Find and Replace cho phép dò tìm chuổi có trong công thức mà anh (bấm nút Options sẽ thấy)
Từ đó ta record macro là ra chứ gì
-----------------------
Bạn dvu58 xem file đính kèm thử nhé.
Code của đồng chí cũng dùng Find nhưng thiếu 1 chổ vô cùng quan trọng, đó là: LookIn:=xlFormulasLookAt:=xlPart ---> Vì thế code này có thể chạy được trên máy của đồng chí nhưng rất có thể chẳng chạy được trên máy khác
Ngoài ra thì... code dài đến mức nhìn.. ngán luôn
Tôi nghĩ bấm 1 nút, nó sẽ tô màu tất cả các cell tìm được ---> Đấy mới là giải pháp
1 vòng lập là xong tất tần tật!
 
Lần chỉnh sửa cuối:
Upvote 0
Sao anh không bấm Ctrl + F mà thử ---> Công cụ Find and Replace cho phép dò tìm chuổi có trong công thức mà anh (bấm nút Options sẽ thấy)
Từ đó ta record macro là ra chứ gì

ndu96081631 thân!
Mình đã thử cách đó rồi nhưng khi dùng VBA để xử lý thì không biết tại sao lại không được!?
(trong bảng tính, dùng Find hoặc Replace thì OK (cho công thức). Nhưng record macro rồi chạy thì nó lắc cái "bụp!" rồi im re! Hình như nó nói rằng : "Không có cái chuỗi đó đâu. Đừng tìm, mất công!").

Mình sử dụng code của nam2806 (có sửa một chút để "nhập gia tùy tục" ấy mà! thì chạy ngon lành rồi!)
Cảm ơn hết tất cả các bạn.
(Không biết còn cách nào nữa không ha?)
 
Upvote 0
ndu96081631 thân!
Mình đã thử cách đó rồi nhưng khi dùng VBA để xử lý thì không biết tại sao lại không được!?
(trong bảng tính, dùng Find hoặc Replace thì OK (cho công thức). Nhưng record macro rồi chạy thì nó lắc cái "bụp!" rồi im re! Hình như nó nói rằng : "Không có cái chuỗi đó đâu. Đừng tìm, mất công!").

Mình sử dụng code của nam2806 (có sửa một chút để "nhập gia tùy tục" ấy mà! thì chạy ngon lành rồi!)
Cảm ơn hết tất cả các bạn.
(Không biết còn cách nào nữa không ha?)
Anh thử code này xem nhé:
PHP:
Sub FindText_InFormula()
  Dim FindValue As String, FAdd As String, FindRng As Range
  On Error GoTo ExitSub
  With Application.InputBox("Chon vung can tim", Type:=8)
    FindValue = Application.InputBox("Go chuoi can tim", Type:=2)
    Set FindRng = .Find(FindValue, , xlFormulas, xlPart)
    If Not FindRng Is Nothing Then
      FAdd = FindRng.Address
      Do
        FindRng.Interior.ColorIndex = 6
        Set FindRng = .FindNext(FindRng)
      Loop Until FindRng.Address = FAdd
    End If
  End With
ExitSub:
End Sub
(Code này nằm trong Help của VBA, chỉ chỉnh lại đội chút)
Code của nam2806 chỉ chạy được nếu trong phần Options của Find and Replace anh đặt trước cho nó là TÌM THEO CÔNG THỨC
Cái vụ Options này em đặt luôn trong code rồi, chắc ăn chính xác! Anh thử xem
 

File đính kèm

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

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

Back
Top Bottom