Tìm những ô có công thức. (1 người xem)

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

Người dùng đang xem chủ đề này

khamha

Không có việc gì khó...
Tham gia
4/6/10
Bài viết
662
Được thích
846
Nghề nghiệp
CNVC Laos
Mình muốn tìm những ô có công thức như sau:
1, Tìm nhưng ô có công chứa công thức tại: C5:IV5 .
2, Nếu tìm thấy ,sẽ hiện thông tin tại ô IV1 .Ví dụ:
+ Tại ô C5 ,G5 ,H5 ,I5 ,W5 có công thức.
+ Thì tại ô IV1 ,sẽ hiện nội dung: C5,G5:I5,W5
.Thank
 
Mình muốn tìm những ô có công thức như sau:
1, Tìm nhưng ô có công chứa công thức tại: C5:IV5 .
2, Nếu tìm thấy ,sẽ hiện thông tin tại ô IV1 .Ví dụ:
+ Tại ô C5 ,G5 ,H5 ,I5 ,W5 có công thức.
+ Thì tại ô IV1 ,sẽ hiện nội dung: C5,G5:I5,W5
.Thank
Anh thử nghiệm với SpecialCells hoặc thuộc tính HasFormula của đối tượng Range xem. Em nghĩ là không khó đâu.
 
Upvote 0
Anh thử nghiệm với SpecialCells hoặc thuộc tính HasFormula của đối tượng Range xem. Em nghĩ là không khó đâu.
SpecialCells viết vậy được không Phúc:
[GPECODE=vb]Sub Test() Range("A1") = Range("C5:IV5").SpecialCells(xlCellTypeFormulas, 23).Address
End Sub


[/GPECODE]
Có thể viết như thế nào nữa, và thuộc tính HasFormula thì viết thế nào?
 
Lần chỉnh sửa cuối:
Upvote 0
SpecialCells viết vậy được không Phúc:
Mã:
Sub Test()    
Range("A1") = Range("C5:IV5").SpecialCells(xlCellTypeFormulas, 23)[COLOR=#ff0000].Address[/COLOR]
End Sub
Có thể viết như thế nào nữa, và thuộc tính HasFormula thì viết thế nào?

Chú mày viết vậy là ngon lành rồi (khởi đầu tốt để học VBA)
Sửa .Address thành .Address(0, 0) cho dễ nhìn nhé
--------------
Tuy nhiên, đó là Sub, phải bấm nút (hoặc phím tắt) nó mới chạy. Nếu viết thành 1 Function để gõ trên bảng tính thì lại không dùng được SpecialCells (code trong Function sẽ không hoạt động)
Vậy, với code dạng Function, ta dùng HasFormula
Ví dụ:
Mã:
For Each rCel in Range("C5:IV5")
  If rCel.HasFormula then
    'Nối chuổi từ rCel.Address hay làm gì tùy ý
  End IF
Next
Bài này nếu viết thành 1 Function đàng hoàng cũng không phải chuyện khó khăn gì (viết cho thật tổng quát mới khó)
Chú mày thử sức xem
 
Lần chỉnh sửa cuối:
Upvote 0
Bài này nếu viết thành 1 Function đàng hoàng cũng không phải chuyện khó khăn gì (viết cho thật tổng quát mới khó)
Chú mày thử sức xem
Em thử sức cái xem sao nào:
Mã:
Function CellHasFormula(Rng As Range) As String
    Dim Cll As Range, sTmp As String
    For Each Cll In Rng
        If Cll.HasFormula Then sTmp = sTmp & ", " & Cll.Address(0, 0)
    Next
    If Len(sTmp) > 2 Then CellHasFormula = Mid(sTmp, 3, Len(sTmp) - 2)
End Function
Cú pháp: =CellHasFormula(Vùng)
Kết quả: Nếu trong Vùng có ô chứa công thức thì hàm trả về danh sách các ô đó, ngược lại thì hàm trả về chuỗi rỗng.
 
Upvote 0
SpecialCells viết vậy được không Phúc:
[GPECODE=vb]Sub Test() Range("A1") = Range("C5:IV5").SpecialCells(xlCellTypeFormulas, 23).Address
End Sub
[/GPECODE]
Nếu trường hợp muốn tìm những ô không có công thức thì phải sửa lại Code như thế nào ?
 
Upvote 0
Mình Thay xlCellTypeFormulas Trong Sub,
Thành xlCellTypeConstants để tìm những ô ko có công thức & nó báo lỗi.
 
Upvote 0
Mình Thay xlCellTypeFormulas Trong Sub,
Thành xlCellTypeConstants để tìm những ô ko có công thức & nó báo lỗi.

Chỉ có thể báo lỗi khi toàn bộ các cell trong vùng cần tìm đều là công thức, tức không tìm thấy bất kỳ cell nào là giá trị
Vậy thôi!
 
Upvote 0

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

Back
Top Bottom