[Gỡ rối]Nhờ hướng dẫn cách tìm và thay thế trong phạm vi đã chọn

Liên hệ QC

thaitungchi

Thành viên chính thức
Tham gia
20/1/17
Bài viết
55
Được thích
19
Trong Excel đã cách tìm kiếm và thay thế nhưng trong lựa chọn nâng cao chỉ có tìm kiếm và thay thế trong toàn bộ một sheet hoặc workbook.
Xin hỏi cách để tìm kiếm và thay trong phạm vị ô đã chọn. Hoặc nếu mọi người có cách dùng vba thì cho xin code để xử lý phương pháp này.

Mục đích là để thay đổi từ ô tham chiếu tuyệt đối sang ô tham chiếu tương đối đối với một vùng bảng tính có chứa công thức.
Tức là xóa dấu "$" trong vùng có chứa công thức. Nếu dùng chức năng tìm kiếm thông thường thì nó sẽ thay thế toàn bộ công thức trong bảng tính.

Xin lỗi vì không file mẫu. Rất mong được cao thủ về excel gỡ rối.
 
Trong Excel đã cách tìm kiếm và thay thế nhưng trong lựa chọn nâng cao chỉ có tìm kiếm và thay thế trong toàn bộ một sheet hoặc workbook.
Xin hỏi cách để tìm kiếm và thay trong phạm vị ô đã chọn. Hoặc nếu mọi người có cách dùng vba thì cho xin code để xử lý phương pháp này.

Mục đích là để thay đổi từ ô tham chiếu tuyệt đối sang ô tham chiếu tương đối đối với một vùng bảng tính có chứa công thức.
Tức là xóa dấu "$" trong vùng có chứa công thức. Nếu dùng chức năng tìm kiếm thông thường thì nó sẽ thay thế toàn bộ công thức trong bảng tính.

Xin lỗi vì không file mẫu. Rất mong được cao thủ về excel gỡ rối.
Không có file mẫu thì khó hiểu được mà giúp
Về mặc định excel chỉ tìm kiếm thay thế trong vùng chọn (selection, nhớ chọn ít nhất 2 ô) mà thôi, nên cứ chọn và thay thế thì đạt như mong muốn thay trong vùng chọn
 
Upvote 0
Đúng là như bạn tigertiger nói, excel mặc định tìm trong vùng chọn nhỉ.
Từ trước đến nay không chọn mà tìm luôn nên là cứ nghĩ không được.

Thêm một câu hỏi khác là có cách nào để chỉ định thay đổi kiểu tham chiếu trong vba không?
Trong excel, khi chọn công thức và ấn F4 thì sẽ thay đổi kiểu tham chiếu.
Đối với những công thức có ô kiểu tham chiếu cố định cả dòng và cột thì đổi sang tham chiếu cố định dòng?

Ví dụ những ô có dạng $C$2:$C$100 -->$C2:$C100
 
Upvote 0
Đúng là như bạn tigertiger nói, excel mặc định tìm trong vùng chọn nhỉ.
Từ trước đến nay không chọn mà tìm luôn nên là cứ nghĩ không được.

Thêm một câu hỏi khác là có cách nào để chỉ định thay đổi kiểu tham chiếu trong vba không?
Trong excel, khi chọn công thức và ấn F4 thì sẽ thay đổi kiểu tham chiếu.
Đối với những công thức có ô kiểu tham chiếu cố định cả dòng và cột thì đổi sang tham chiếu cố định dòng?

Ví dụ những ô có dạng $C$2:$C$100 -->$C2:$C100
Cũng bấm F4 thôi
Bấm 1 lần F4 cố định tất cả hàng và cột
Bấm F4 lần 2 : thì cố định Hàng
Bấm F4 lần 3: thì cố định cột
Bấm F4 lần 4 trở về tưuơng đối
Bấm tiếp ... lặp về giống bấm lần 1 - cứ vòng tròn vậy đó
 
Upvote 0
Đấy là trên thanh tính công thức. Còn trên vba thì có làm tự động như vậy được không thì mình đang hỏi.

Thêm nữa, lúc tìm và chọn Find ALL thì đúng là chỉ ra kết quả trong phạm vị đã chọn nhưng
nhưng khi thay thế trong vùng chọn nếu mình chọn Replace all thì nó lại thay thế luôn toàn bộ sheet.
Không biết là có bị lỗi phần mềm không nhỉ. (Mình đang dùng Excel2007)
 
Upvote 0
PHP:
Sub FindAndReplace()
 Dim Rng As Range, sRng As Range, rRng As Range
 Dim MyAdd As String
 Dim Rws As Long

 Rws = [c2].CurrentRegion.Rows.Count
 Set Rng = [C1].Resize(Rws)
 Set sRng = Rng.Find("Dùng", , xlFormulas, xlPart)
 If Not sRng Is Nothing Then
    MyAdd = sRng.Address
    Do
        If rRng Is Nothing Then
            Set rRng = sRng
        Else
            Set rRng = Union(rRng, sRng)
        End If
        Set sRng = Rng.FindNext(sRng)
    Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
    If Not rRng Is Nothing Then
        For Each Rng In rRng
            Rng.Value = Replace(Rng.Value, "Dùng", "Dung")
        Next Rng
    End If
 End If
End Sub
 
Upvote 0
Đấy là trên thanh tính công thức. Còn trên vba thì có làm tự động như vậy được không thì mình đang hỏi.

Thêm nữa, lúc tìm và chọn Find ALL thì đúng là chỉ ra kết quả trong phạm vị đã chọn nhưng
nhưng khi thay thế trong vùng chọn nếu mình chọn Replace all thì nó lại thay thế luôn toàn bộ sheet.
Không biết là có bị lỗi phần mềm không nhỉ. (Mình đang dùng Excel2007)
Trên Sheet: Thay thế toàn bộ cũng chỉ nằm trong vùng chọn (nhớ là vùng chọn phải ít nhất là 2 ô)

VBA thì quan trọng gì địa chỉ tương đối tuyệt đối nữa, thích thì gõ vào code là xong
 
Upvote 0
Dim congThuc(1 To 4) As String
...
congThuc(1) = công thức tham chiếu tuyệt đối
congThuc(2) = tuyệt đối cột, tương đối dòng: copy lại công thức tuyệt đối trên và xoá các $ trước dòng
congThuc(3) = tương đối cột, tuyệt đối dòng: copy lại công thức tuyệt đối trên và xoá các $ trước cột
congThuc(4) = công thức tham chiếu tương đối: copy lại công thức tuyệt đối trên và xoá hết $
 
Upvote 0
Cám ơn mọi người rất nhiều. Về cách tìm và thay thế thì đúng là bị lỗi. Nhưng mà khi chọn hết tất cả kết cả trong bảng lựa chọn rồi ấn Replace All thì không bị lỗi nữa. Đúng là Vba thì gõ công thức vào luôn không cần suy nghĩ tương đối và tuyệt đối. Nhưng mà để tạo bảng tự động thì cách dùng địa chỉ tương đối và tuyệt đối cũng hiệu quả.

Code của bạn SA_QD thì sẽ đổi công thức từ tham chiếu tuyệt đối thành tương đối được.
Nhưng từ tham chiếu tương đối thành tham chiếu hỗn hợp thì chắc là không được. Ví dụ: $C$2:$C$100 --> $C2:$C100 (cố định cột)

Code của bạn VetMini sẽ dùng khi mình tự tạo bảng và tự tạo công thức.
Nhưng nếu trong bảng có sẵn hàng chục công thức rồi mình tận dụng để sửa tự động công thức từ tương đối sang tuyệt đối hoặc tham chiếu hỗn hợp thì vẫn có vẻ khó. Ví dụ đối với các vùng phạm vi lựa chọn thì đổi từ tương đối sang tuyệt đối (MD5:NH138 --> $MD$5:$NH$138), còn điều kiện thì đổi thành tham chiếu hỗn hợp (MF144 --> $MF144)

Chắc là cho xuất hiện hộp thoại đối với vùng chọn thì chọn đổi sang kiểu tham chiếu nào, vùng điều kiện thì chọn kiểu tham chiếu nào rồi mới dùng vba để chuyển đổi. Nhưng mà vba mà tự động chuyển đổi cho một vùng đã chọn thì cũng khó

Ví dụ: công thức tại ô MG144 muốn đổi thành như dưới đây

=COUNTIF(MD5:NH138,MF144) --> =COUNTIF($MD$5:NH$138,$MF144)

Và có nhiều ô khác cũng muốn xử lý tự động như trên ô trên

=AG173/M140 --> =AG173/$M$140
 
Upvote 0
Web KT

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

Back
Top Bottom